first commit
This commit is contained in:
81
node_modules/vant/es/swipe-item/SwipeItem.mjs
generated
vendored
Normal file
81
node_modules/vant/es/swipe-item/SwipeItem.mjs
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
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] <SwipeItem> must be a child component of <Swipe>.");
|
||||
}
|
||||
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
|
||||
};
|
||||
Reference in New Issue
Block a user