38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { VNode } from 'vue';
|
|
import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
|
|
|
|
type PortalAppendToType = 'body' | 'self' | string | undefined | HTMLElement;
|
|
|
|
export interface PortalProps {
|
|
/**
|
|
* A valid query selector or an HTMLElement to specify where the dialog gets attached. Special keywords are 'body' for document body and 'self' for the element itself.
|
|
* @see PortalAppendToType
|
|
* Default value is 'body'.
|
|
*/
|
|
appendTo?: PortalAppendToType;
|
|
/**
|
|
* If disabled, the Portal feature is eliminated and the content is displayed directly.
|
|
* @defaultValue false
|
|
*/
|
|
disabled?: boolean | undefined;
|
|
}
|
|
|
|
export interface PortalSlots {
|
|
/**
|
|
* Default content slot.
|
|
*/
|
|
default: () => VNode[];
|
|
}
|
|
|
|
export declare type PortalEmits = {};
|
|
|
|
declare class Portal extends ClassComponent<PortalProps, PortalSlots, PortalEmits> {}
|
|
|
|
declare module '@vue/runtime-core' {
|
|
interface GlobalComponents {
|
|
Portal: GlobalComponentConstructor<Portal>;
|
|
}
|
|
}
|
|
|
|
export default Portal;
|