| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { use } from '../utils';
- import { inherit } from '../utils/functional';
- import { preventDefault } from '../utils/event';
- // Types
- import { CreateElement, RenderContext } from 'vue/types';
- import { DefaultSlots } from '../utils/use/sfc';
- export type OverlayProps = {
- zIndex?: number;
- className?: any;
- visible?: boolean;
- customStyle?: object;
- };
- export type OverlayEvents = {
- click(event: Event): void;
- };
- const [sfc, bem] = use('overlay');
- function Overlay(
- h: CreateElement,
- props: OverlayProps,
- slots: DefaultSlots,
- ctx: RenderContext<OverlayProps>
- ) {
- const style = {
- zIndex: props.zIndex,
- ...props.customStyle
- };
- return (
- <transition name="van-fade">
- <div
- vShow={props.visible}
- style={style}
- class={[bem(), props.className]}
- onTouchmove={(event: TouchEvent) => {
- preventDefault(event, true);
- }}
- {...inherit(ctx, true)}
- />
- </transition>
- );
- }
- Overlay.props = {
- zIndex: Number,
- className: null as any,
- visible: Boolean,
- customStyle: Object
- };
- export default sfc<OverlayProps, OverlayEvents>(Overlay);
|