first commit
This commit is contained in:
67
node_modules/vant/es/tabs/TabsContent.mjs
generated
vendored
Normal file
67
node_modules/vant/es/tabs/TabsContent.mjs
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
import { ref, watch, onMounted, defineComponent, createVNode as _createVNode } from "vue";
|
||||
import { numericProp, makeRequiredProp, createNamespace } from "../utils/index.mjs";
|
||||
import { Swipe } from "../swipe/index.mjs";
|
||||
import { useExpose } from "../composables/use-expose.mjs";
|
||||
const [name, bem] = createNamespace("tabs");
|
||||
var stdin_default = defineComponent({
|
||||
name,
|
||||
props: {
|
||||
count: makeRequiredProp(Number),
|
||||
inited: Boolean,
|
||||
animated: Boolean,
|
||||
duration: makeRequiredProp(numericProp),
|
||||
swipeable: Boolean,
|
||||
lazyRender: Boolean,
|
||||
currentIndex: makeRequiredProp(Number)
|
||||
},
|
||||
emits: ["change"],
|
||||
setup(props, {
|
||||
emit,
|
||||
slots
|
||||
}) {
|
||||
const swipeRef = ref();
|
||||
const onChange = (index) => emit("change", index);
|
||||
const renderChildren = () => {
|
||||
var _a;
|
||||
const Content = (_a = slots.default) == null ? void 0 : _a.call(slots);
|
||||
if (props.animated || props.swipeable) {
|
||||
return _createVNode(Swipe, {
|
||||
"ref": swipeRef,
|
||||
"loop": false,
|
||||
"class": bem("track"),
|
||||
"duration": +props.duration * 1e3,
|
||||
"touchable": props.swipeable,
|
||||
"lazyRender": props.lazyRender,
|
||||
"showIndicators": false,
|
||||
"onChange": onChange
|
||||
}, {
|
||||
default: () => [Content]
|
||||
});
|
||||
}
|
||||
return Content;
|
||||
};
|
||||
const swipeToCurrentTab = (index) => {
|
||||
const swipe = swipeRef.value;
|
||||
if (swipe && swipe.state.active !== index) {
|
||||
swipe.swipeTo(index, {
|
||||
immediate: !props.inited
|
||||
});
|
||||
}
|
||||
};
|
||||
watch(() => props.currentIndex, swipeToCurrentTab);
|
||||
onMounted(() => {
|
||||
swipeToCurrentTab(props.currentIndex);
|
||||
});
|
||||
useExpose({
|
||||
swipeRef
|
||||
});
|
||||
return () => _createVNode("div", {
|
||||
"class": bem("content", {
|
||||
animated: props.animated || props.swipeable
|
||||
})
|
||||
}, [renderChildren()]);
|
||||
}
|
||||
});
|
||||
export {
|
||||
stdin_default as default
|
||||
};
|
||||
Reference in New Issue
Block a user