{"version":3,"file":"tabs-content.mjs","sources":["../../../../../../../packages/components/tabs/src/tabs-content.tsx"],"sourcesContent":["import { defineComponent, onMounted, ref, watch } from 'vue'\nimport { useExpose, useNamespace } from '@xzx-design/hooks'\nimport Swipe from '@xzx-design/components/swipe'\n\nimport { tabsContentProps } from './types/tabs-content'\n\nimport type { SwipeInstance } from '@xzx-design/components/swipe'\n\nexport default defineComponent({\n  props: tabsContentProps,\n  setup(props, { slots, emit }) {\n    const { e } = useNamespace('tabs')\n\n    const swipeRef = ref<SwipeInstance>()\n\n    const onChange = (index: number) => emit('change', index)\n\n    const renderChildren = () => {\n      const Content = slots.default?.()\n\n      if (props.animated || props.swipeable) {\n        return (\n          <Swipe\n            ref={swipeRef}\n            loop={false}\n            class={e('track')}\n            duration={+props.duration * 1000}\n            touchable={props.swipeable}\n            lazyRender={props.lazyRender}\n            showIndicators={false}\n            onChange={onChange}\n          >\n            {Content}\n          </Swipe>\n        )\n      }\n\n      return Content\n    }\n\n    const swipeToCurrentTab = (index: number) => {\n      const swipe = swipeRef.value\n      if (swipe && swipe.state.active !== index) {\n        swipe.swipeTo(index, { immediate: !props.inited })\n      }\n    }\n\n    watch(() => props.currentIndex, swipeToCurrentTab)\n\n    onMounted(() => {\n      swipeToCurrentTab(props.currentIndex)\n    })\n\n    useExpose({ swipeRef })\n\n    return () => <div class={[e('content')]}>{renderChildren()}</div>\n  },\n})\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","props","tabsContentProps","setup","slots","emit","e","useNamespace","swipeRef","ref","onChange","index","renderChildren","Content","default","animated","swipeable","_createVNode","Swipe","duration","lazyRender","swipeToCurrentTab","swipe","value","state","active","swipeTo","immediate","inited","watch","currentIndex","onMounted","useExpose"],"mappings":";;;;;;;AAIuD,SAAAA,QAAAC,CAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAAA,KAAA,UAAAC,IAAAA,MAAAA,CAAAC,SAAAC,CAAAA,QAAAA,CAAAC,IAAAJ,CAAAA,CAAA,CAAAK,KAAAA,iBAAAA,IAAAA,CAAAA,OAAAA,CAAAL,CAAA,CAAA,CAAA;AAAA,CAAA;AAIvD,kBAAeM,eAAgB,CAAA;AAAA,EAC7BC,KAAOC,EAAAA,gBAAAA;AAAAA,EACPC,MAAMF,KAAO,EAAA;AAAA,IAAEG,KAAAA;AAAAA,IAAOC,IAAAA;AAAAA,GAAQ,EAAA;AAC5B,IAAM,MAAA;AAAA,MAAEC,CAAAA;AAAAA,KAAE,GAAIC,aAAa,MAAM,CAAA,CAAA;AAEjC,IAAA,MAAMC,WAAWC,GAAmB,EAAA,CAAA;AAEpC,IAAA,MAAMC,QAAYC,GAAAA,CAAAA,KAAAA,KAAkBN,IAAK,CAAA,QAAA,EAAUM,KAAK,CAAA,CAAA;AAExD,IAAA,MAAMC,iBAAiBA,MAAM;AAjBjC,MAAA,IAAA,EAAA,CAAA;AAkBM,MAAMC,MAAAA,OAAAA,GAAAA,CAAUT,WAAMU,OAANV,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA;AAEhB,MAAIH,IAAAA,KAAAA,CAAMc,QAAYd,IAAAA,KAAAA,CAAMe,SAAW,EAAA;AACrC,QAAA,OAAAC,YAAAC,KAAA,EAAA;AAAA,UAAA,KAESV,EAAAA,QAAAA;AAAAA,UAAQ,MACP,EAAA,KAAA;AAAA,UAAK,OAAA,EACJF,EAAE,OAAO,CAAA;AAAA,UAAC,UAAA,EACP,CAACL,KAAAA,CAAMkB,QAAW,GAAA,GAAA;AAAA,UAAI,aACrBlB,KAAMe,CAAAA,SAAAA;AAAAA,UAAS,cACdf,KAAMmB,CAAAA,UAAAA;AAAAA,UAAU,gBACZ,EAAA,KAAA;AAAA,UAAK,UACXV,EAAAA,QAAAA;AAAAA,SAAQjB,EAAAA,OAAAA,CAEjBoB,OAAO,CAAA,GAAPA,OAAO,GAAA;AAAA,UAAAC,OAAAA,EAAAA,MAAA,CAAPD,OAAO,CAAA;AAAA,SAAA,CAAA,CAAA;AAAA,OAGd;AAEA,MAAOA,OAAAA,OAAAA,CAAAA;AAAAA,KACT,CAAA;AAEA,IAAA,MAAMQ,oBAAqBV,CAAkB,KAAA,KAAA;AAC3C,MAAA,MAAMW,QAAQd,QAASe,CAAAA,KAAAA,CAAAA;AACvB,MAAA,IAAID,KAASA,IAAAA,KAAAA,CAAME,KAAMC,CAAAA,MAAAA,KAAWd,KAAO,EAAA;AACzCW,QAAAA,KAAAA,CAAMI,QAAQf,KAAO,EAAA;AAAA,UAAEgB,SAAAA,EAAW,CAAC1B,KAAM2B,CAAAA,MAAAA;AAAAA,SAAQ,CAAA,CAAA;AAAA,OACnD;AAAA,KACF,CAAA;AAEAC,IAAM,KAAA,CAAA,MAAM5B,KAAM6B,CAAAA,YAAAA,EAAcT,iBAAiB,CAAA,CAAA;AAEjDU,IAAAA,SAAAA,CAAU,MAAM;AACdV,MAAAA,iBAAAA,CAAkBpB,MAAM6B,YAAY,CAAA,CAAA;AAAA,KACrC,CAAA,CAAA;AAEDE,IAAU,SAAA,CAAA;AAAA,MAAExB,QAAAA;AAAAA,KAAU,CAAA,CAAA;AAEtB,IAAO,OAAA,MAAAS,YAAA,KAAA,EAAA;AAAA,MAAA,OAAkB,EAAA,CAACX,CAAE,CAAA,SAAS,CAAC,CAAA;AAAA,KAAIM,EAAAA,CAAAA,cAAe,EAAC,CAAO,CAAA,CAAA;AAAA,GACnE;AACF,CAAC,CAAA;;;;"}