import { computed, nextTick, reactive, onMounted, defineComponent, createVNode as _createVNode } from "vue"; import { createNamespace } from "../utils/index.mjs"; import { SWIPE_KEY } from "../swipe/Swipe.mjs"; import { useParent } from "@vant/use"; import { useExpose } from "../composables/use-expose.mjs"; const [name, bem] = createNamespace("swipe-item"); var stdin_default = defineComponent({ name, setup(props, { slots }) { let rendered; const state = reactive({ offset: 0, inited: false, mounted: false }); const { parent, index } = useParent(SWIPE_KEY); if (!parent) { if (process.env.NODE_ENV !== "production") { console.error("[Vant] must be a child component of ."); } return; } const style = computed(() => { const style2 = {}; const { vertical } = parent.props; if (parent.size.value) { style2[vertical ? "height" : "width"] = `${parent.size.value}px`; } if (state.offset) { style2.transform = `translate${vertical ? "Y" : "X"}(${state.offset}px)`; } return style2; }); const shouldRender = computed(() => { const { loop, lazyRender } = parent.props; if (!lazyRender || rendered) { return true; } if (!state.mounted) { return false; } const active = parent.activeIndicator.value; const maxActive = parent.count.value - 1; const prevActive = active === 0 && loop ? maxActive : active - 1; const nextActive = active === maxActive && loop ? 0 : active + 1; rendered = index.value === active || index.value === prevActive || index.value === nextActive; return rendered; }); const setOffset = (offset) => { state.offset = offset; }; onMounted(() => { nextTick(() => { state.mounted = true; }); }); useExpose({ setOffset }); return () => { var _a; return _createVNode("div", { "class": bem(), "style": style.value }, [shouldRender.value ? (_a = slots.default) == null ? void 0 : _a.call(slots) : null]); }; } }); export { stdin_default as default };