1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { ref, defineComponent, Teleport, Transition, vShow as _vShow, createVNode as _createVNode, withDirectives as _withDirectives } from "vue";
- import { isDef, extend, truthProp, numericProp, unknownProp, preventDefault, createNamespace, getZIndexStyle } from "../utils/index.mjs";
- import { useEventListener } from "@vant/use";
- import { useLazyRender } from "../composables/use-lazy-render.mjs";
- const [name, bem] = createNamespace("overlay");
- const overlayProps = {
- show: Boolean,
- zIndex: numericProp,
- duration: numericProp,
- className: unknownProp,
- lockScroll: truthProp,
- lazyRender: truthProp,
- customStyle: Object,
- teleport: [String, Object]
- };
- var stdin_default = defineComponent({
- name,
- props: overlayProps,
- setup(props, {
- slots
- }) {
- const root = ref();
- const lazyRender = useLazyRender(() => props.show || !props.lazyRender);
- const onTouchMove = (event) => {
- if (props.lockScroll) {
- preventDefault(event, true);
- }
- };
- const renderOverlay = lazyRender(() => {
- var _a;
- const style = extend(getZIndexStyle(props.zIndex), props.customStyle);
- if (isDef(props.duration)) {
- style.animationDuration = `${props.duration}s`;
- }
- return _withDirectives(_createVNode("div", {
- "ref": root,
- "style": style,
- "class": [bem(), props.className]
- }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), [[_vShow, props.show]]);
- });
- useEventListener("touchmove", onTouchMove, {
- target: root
- });
- return () => {
- const Content = _createVNode(Transition, {
- "name": "van-fade",
- "appear": true
- }, {
- default: renderOverlay
- });
- if (props.teleport) {
- return _createVNode(Teleport, {
- "to": props.teleport
- }, {
- default: () => [Content]
- });
- }
- return Content;
- };
- }
- });
- export {
- stdin_default as default,
- overlayProps
- };
|