{"version":3,"file":"swipe-item.mjs","sources":["../../../../../../../packages/components/swipe/src/swipe-item.tsx"],"sourcesContent":["import {\n  type CSSProperties,\n  computed,\n  defineComponent,\n  nextTick,\n  onMounted,\n  reactive,\n} from 'vue'\n\nimport { useExpose, useNamespace, useParent } from '@xzx-design/hooks'\nimport { SWIPE_KEY } from './swipe'\n\nconst name = 'XzxSwipeItem'\nexport default defineComponent({\n  name,\n  __name: name,\n  setup(props, { slots }) {\n    let rendered: boolean\n    const state = reactive({\n      offset: 0,\n      inited: false,\n      mounted: false,\n    })\n\n    const { b } = useNamespace('swipe-item')\n\n    const { parent, index } = useParent(SWIPE_KEY)\n\n    if (!parent) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error(\n          '[Vant] <SwipeItem> must be a child component of <Swipe>.'\n        )\n      }\n      return\n    }\n\n    const style = computed(() => {\n      const style: CSSProperties = {}\n      const { vertical } = parent.props\n\n      if (parent.size.value) {\n        style[vertical ? 'height' : 'width'] = `${parent.size.value}px`\n      }\n\n      if (state.offset) {\n        style.transform = `translate${vertical ? 'Y' : 'X'}(${state.offset}px)`\n      }\n\n      return style\n    })\n\n    const shouldRender = computed(() => {\n      const { loop, lazyRender } = parent.props\n\n      if (!lazyRender || rendered) {\n        return true\n      }\n\n      // wait for all item to mount, so we can get the exact count\n      if (!state.mounted) {\n        return false\n      }\n\n      const active = parent.activeIndicator.value\n      const maxActive = parent.count.value - 1\n      const prevActive = active === 0 && loop ? maxActive : active - 1\n      const nextActive = active === maxActive && loop ? 0 : active + 1\n      rendered =\n        index.value === active ||\n        index.value === prevActive ||\n        index.value === nextActive\n\n      return rendered\n    })\n\n    const setOffset = (offset: number) => {\n      state.offset = offset\n    }\n\n    onMounted(() => {\n      nextTick(() => {\n        state.mounted = true\n      })\n    })\n\n    useExpose({ setOffset })\n\n    return () => (\n      <div class={b()} style={style.value}>\n        {shouldRender.value ? slots.default?.() : null}\n      </div>\n    )\n  },\n})\n"],"names":["name","defineComponent","__name","setup","props","slots","rendered","state","reactive","offset","inited","mounted","b","useNamespace","parent","index","useParent","SWIPE_KEY","process","env","NODE_ENV","console","error","style","computed","vertical","size","value","transform","shouldRender","loop","lazyRender","active","activeIndicator","maxActive","count","prevActive","nextActive","setOffset","onMounted","nextTick","useExpose","_createVNode","default"],"mappings":";;;;;;;AAYA,MAAMA,IAAO,GAAA,cAAA,CAAA;AACb,iBAAeC,eAAgB,CAAA;AAAA,EAC7BD,IAAAA;AAAAA,EACAE,MAAQF,EAAAA,IAAAA;AAAAA,EACRG,MAAMC,KAAO,EAAA;AAAA,IAAEC,KAAAA;AAAAA,GAAS,EAAA;AACtB,IAAIC,IAAAA,QAAAA,CAAAA;AACJ,IAAA,MAAMC,QAAQC,QAAS,CAAA;AAAA,MACrBC,MAAQ,EAAA,CAAA;AAAA,MACRC,MAAQ,EAAA,KAAA;AAAA,MACRC,OAAS,EAAA,KAAA;AAAA,KACV,CAAA,CAAA;AAED,IAAM,MAAA;AAAA,MAAEC,CAAAA;AAAAA,KAAE,GAAIC,aAAa,YAAY,CAAA,CAAA;AAEvC,IAAM,MAAA;AAAA,MAAEC,MAAAA;AAAAA,MAAQC,KAAAA;AAAAA,KAAM,GAAIC,UAAUC,SAAS,CAAA,CAAA;AAE7C,IAAA,IAAI,CAACH,MAAQ,EAAA;AACX,MAAII,IAAAA,OAAAA,CAAQC,GAAIC,CAAAA,QAAAA,KAAa,YAAc,EAAA;AACzCC,QAAAA,OAAAA,CAAQC,MACN,0DACF,CAAA,CAAA;AAAA,OACF;AACA,MAAA,OAAA;AAAA,KACF;AAEA,IAAMC,MAAAA,KAAAA,GAAQC,SAAS,MAAM;AAC3B,MAAA,MAAMD,SAAuB,EAAC,CAAA;AAC9B,MAAM,MAAA;AAAA,QAAEE,QAAAA;AAAAA,UAAaX,MAAOV,CAAAA,KAAAA,CAAAA;AAE5B,MAAIU,IAAAA,MAAAA,CAAOY,KAAKC,KAAO,EAAA;AACrBJ,QAAAA,OAAME,QAAW,GAAA,QAAA,GAAW,OAAW,CAAA,GAAA,CAAA,EAAGX,OAAOY,IAAKC,CAAAA,KAAAA,CAAAA,EAAAA,CAAAA,CAAAA;AAAAA,OACxD;AAEA,MAAA,IAAIpB,MAAME,MAAQ,EAAA;AAChBc,QAAAA,OAAMK,SAAY,GAAA,CAAA,SAAA,EAAYH,QAAW,GAAA,GAAA,GAAM,OAAOlB,KAAME,CAAAA,MAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AAAAA,OAC9D;AAEA,MAAOc,OAAAA,MAAAA,CAAAA;AAAAA,KACR,CAAA,CAAA;AAED,IAAMM,MAAAA,YAAAA,GAAeL,SAAS,MAAM;AAClC,MAAM,MAAA;AAAA,QAAEM,IAAAA;AAAAA,QAAMC,UAAAA;AAAAA,UAAejB,MAAOV,CAAAA,KAAAA,CAAAA;AAEpC,MAAI,IAAA,CAAC2B,cAAczB,QAAU,EAAA;AAC3B,QAAO,OAAA,IAAA,CAAA;AAAA,OACT;AAGA,MAAI,IAAA,CAACC,MAAMI,OAAS,EAAA;AAClB,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AAEA,MAAMqB,MAAAA,MAAAA,GAASlB,OAAOmB,eAAgBN,CAAAA,KAAAA,CAAAA;AACtC,MAAMO,MAAAA,SAAAA,GAAYpB,MAAOqB,CAAAA,KAAAA,CAAMR,KAAQ,GAAA,CAAA,CAAA;AACvC,MAAA,MAAMS,UAAaJ,GAAAA,MAAAA,KAAW,CAAKF,IAAAA,IAAAA,GAAOI,YAAYF,MAAS,GAAA,CAAA,CAAA;AAC/D,MAAA,MAAMK,UAAaL,GAAAA,MAAAA,KAAWE,SAAaJ,IAAAA,IAAAA,GAAO,IAAIE,MAAS,GAAA,CAAA,CAAA;AAC/D1B,MAAAA,QAAAA,GACES,MAAMY,KAAUK,KAAAA,MAAAA,IAChBjB,MAAMY,KAAUS,KAAAA,UAAAA,IAChBrB,MAAMY,KAAUU,KAAAA,UAAAA,CAAAA;AAElB,MAAO/B,OAAAA,QAAAA,CAAAA;AAAAA,KACR,CAAA,CAAA;AAED,IAAA,MAAMgC,YAAa7B,CAAmB,MAAA,KAAA;AACpCF,MAAAA,KAAAA,CAAME,MAASA,GAAAA,MAAAA,CAAAA;AAAAA,KACjB,CAAA;AAEA8B,IAAAA,SAAAA,CAAU,MAAM;AACdC,MAAAA,QAAAA,CAAS,MAAM;AACbjC,QAAAA,KAAAA,CAAMI,OAAU,GAAA,IAAA,CAAA;AAAA,OACjB,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAED8B,IAAU,SAAA,CAAA;AAAA,MAAEH,SAAAA;AAAAA,KAAW,CAAA,CAAA;AAEvB,IAAA,OAAO;AAxFX,MAAA,IAAA,EAAA,CAAA;AAwFWI,MAAAA,OAAAA,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,SACO9B,CAAE,EAAA;AAAA,QAAC,SAASW,KAAMI,CAAAA,KAAAA;AAAAA,OAAK,EAChCE,CAAAA,YAAaF,CAAAA,KAAAA,GAAAA,CAAQtB,WAAMsC,OAANtC,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,GAAoB,IAAI,CAEjD,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}