tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 5.05 kB
Source Map (JSON)
{"version":3,"file":"swiper-item.mjs","sources":["../../src/swiper/swiper-item.tsx"],"sourcesContent":["import { ref, inject, computed, getCurrentInstance, onMounted, onUnmounted, watch, defineComponent } from 'vue';\nimport { useElementBounding } from '@vueuse/core';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nimport config from '../config';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-swiper-item`,\n setup() {\n const { addChild, removeChild, isVertical, root, items, setContainerHeight } = inject('parent') as any;\n const swiperItemClass = usePrefixClass('swiper-item');\n const readerTNodeJSX = useTNodeJSX();\n const selfRef = ref(null);\n const rootStyle = ref('');\n const instance = getCurrentInstance();\n\n const direction = computed(() => (isVertical.value ? 'Y' : 'X'));\n\n const calcTranslateStyle = (index: number, activeIndex: number) => {\n const distance = root.value?.[isVertical.value ? 'offsetHeight' : 'offsetWidth'] ?? 0;\n const lastItemIndex = items.value.length - 1;\n let step = index - activeIndex;\n // lastItem\n if (activeIndex === lastItemIndex && index === 0) {\n step = 1;\n }\n // firstItem\n if (activeIndex === 0 && index === lastItemIndex && index !== 1) {\n step = -1;\n }\n\n if (activeIndex === index) step = 0;\n\n rootStyle.value = `transform: translate${direction.value}(${step * distance}px)`;\n };\n const { height } = useElementBounding(selfRef);\n\n watch(height, (val) => {\n setContainerHeight(val);\n });\n\n onMounted(() => {\n addChild({\n proxy: instance?.proxy,\n uid: instance?.uid,\n calcTranslateStyle,\n });\n });\n\n onUnmounted(() => {\n removeChild(instance?.uid);\n });\n\n return () => (\n <div ref={selfRef} class={swiperItemClass.value} style={rootStyle.value}>\n {readerTNodeJSX('default')}\n </div>\n );\n },\n});\n"],"names":["prefix","config","defineComponent","name","setup","_inject","inject","addChild","removeChild","isVertical","root","items","setContainerHeight","swiperItemClass","usePrefixClass","readerTNodeJSX","useTNodeJSX","selfRef","ref","rootStyle","instance","getCurrentInstance","direction","computed","value","calcTranslateStyle","index","activeIndex","_root$value","_root$value2","distance","lastItemIndex","length","step","concat","_useElementBounding","useElementBounding","height","watch","val","onMounted","proxy","uid","onUnmounted","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAQA,SAAWC,MAAA,CAAXD;AAER,kBAAeE,eAAgB,CAAA;AAC7BC,EAAAA,gBAASH,MAAA,EAAA,cAAA,CAAA;EACTI,KAAQ,EAAA,SAARA,KAAQA,GAAA;AACA,IAAA,IAAAC,OAAA,GAAyEC,MAAA,CAAO,QAAQ,CAAA;MAAtFC,mBAAAA;MAAUC,WAAa,GAAAH,OAAA,CAAbG,WAAa;MAAAC,UAAA,GAAAJ,OAAA,CAAAI,UAAA;MAAYC,eAAAA;MAAMC,KAAO,GAAAN,OAAA,CAAPM,KAAO;MAAAC,kBAAA,GAAAP,OAAA,CAAAO,kBAAA,CAAA;AAClD,IAAA,IAAAC,eAAA,GAAkBC,eAAe,aAAa,CAAA,CAAA;AACpD,IAAA,IAAMC,iBAAiBC,WAAY,EAAA,CAAA;AAC7B,IAAA,IAAAC,OAAA,GAAUC,IAAI,IAAI,CAAA,CAAA;AAClB,IAAA,IAAAC,SAAA,GAAYD,IAAI,EAAE,CAAA,CAAA;AACxB,IAAA,IAAME,WAAWC,kBAAmB,EAAA,CAAA;IAEpC,IAAMC,YAAYC,QAAS,CAAA,YAAA;AAAA,MAAA,OAAOd,UAAW,CAAAe,KAAA,GAAQ,MAAM,GAAI,CAAA;KAAA,CAAA,CAAA;IAEzD,IAAAC,kBAAA,GAAqB,SAArBA,kBAAAA,CAAsBC,KAAA,EAAeC,WAAwB,EAAA;MAAA,IAAAC,WAAA,EAAAC,YAAA,CAAA;MACjE,IAAMC,0CAAWpB,IAAK,CAAAc,KAAA,MAAAK,IAAAA,IAAAA,YAAA,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAapB,UAAW,CAAAe,KAAA,GAAQ,iBAAiB,aAAkB,CAAA,MAAA,IAAA,IAAAI,WAAA,KAAA,KAAA,CAAA,GAAAA,WAAA,GAAA,CAAA,CAAA;MAC9E,IAAAG,aAAA,GAAgBpB,KAAM,CAAAa,KAAA,CAAMQ,MAAS,GAAA,CAAA,CAAA;AAC3C,MAAA,IAAIC,OAAOP,KAAQ,GAAAC,WAAA,CAAA;AAEf,MAAA,IAAAA,WAAA,KAAgBI,aAAiB,IAAAL,KAAA,KAAU,CAAG,EAAA;AACzCO,QAAAA,IAAA,GAAA,CAAA,CAAA;AACT,OAAA;MAEA,IAAIN,WAAgB,KAAA,CAAA,IAAKD,KAAU,KAAAK,aAAA,IAAiBL,UAAU,CAAG,EAAA;QACxDO,IAAA,GAAA,CAAA,CAAA,CAAA;AACT,OAAA;AAEA,MAAA,IAAIN,WAAgB,KAAAD,KAAA,EAAcO,IAAA,GAAA,CAAA,CAAA;AAElCd,MAAAA,SAAA,CAAUK,KAAQ,GAAAU,sBAAAA,CAAAA,MAAA,CAAuBZ,SAAU,CAAAE,KAAA,EAAA,GAAA,CAAA,CAAAU,MAAA,CAASD,IAAO,GAAAH,QAAA,EAAA,KAAA,CAAA,CAAA;KACrE,CAAA;AACA,IAAA,IAAAK,mBAAA,GAAmBC,kBAAA,CAAmBnB,OAAO,CAAA;MAArCoB,MAAA,GAAAF,mBAAA,CAAAE,MAAA,CAAA;AAEFC,IAAAA,KAAA,CAAAD,MAAA,EAAQ,UAACE,GAAQ,EAAA;MACrB3B,kBAAA,CAAmB2B,GAAG,CAAA,CAAA;AACxB,KAAC,CAAA,CAAA;AAEDC,IAAAA,SAAA,CAAU,YAAM;AACLjC,MAAAA,QAAA,CAAA;AACPkC,QAAAA,OAAOrB,QAAU,KAAA,IAAA,IAAVA,QAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAU,CAAAqB,KAAA;AACjBC,QAAAA,KAAKtB,QAAU,KAAA,IAAA,IAAVA,QAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAU,CAAAsB,GAAA;AACfjB,QAAAA,kBAAA,EAAAA,kBAAAA;AACF,OAAC,CAAA,CAAA;AACH,KAAC,CAAA,CAAA;AAEDkB,IAAAA,WAAA,CAAY,YAAM;MAChBnC,WAAA,CAAYY,aAAAA,IAAAA,IAAAA,+BAAAA,SAAUsB,GAAG,CAAA,CAAA;AAC3B,KAAC,CAAA,CAAA;IAED,OAAO,YAAA;AAAA,MAAA,OAAAE,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,KAAA,EACK3B;eAAgBJ,EAAAA,eAAA,CAAgBW,KAAO;AAAA,QAAA,OAAA,EAAOL,SAAU,CAAAK,KAAAA;OAC/DT,EAAAA,CAAAA,cAAe,CAAA,SAAS;KAD1B,CAAA;AAIL,GAAA;AACF,CAAC,CAAA;;;;"}