import { ComponentRef, ElementRef, Injector, StaticProvider, TemplateRef } from "@angular/core"; import { HorizontalAlign } from "../position"; export interface IPopoverOptions { /** * Event fires after popover window was shown */ wasShown?: () => void; /** * Event fires before popover closed */ beforeClose?: () => Promise; /** * Need auto close when user click out of popover */ autoclose?: boolean; /** * Optional bindings for popover content component */ bindings?: StaticProvider[]; /** * Component type for popover content */ componentType?: Function; templateRef?: TemplateRef; /** * Any popover data that would be passed to popover content component */ popoverData: any; /** * Reference to specific popover content */ componentInstance?: ComponentRef; /** * Container where popover places */ parentContainer?: Element; /** * Show popover relative to this element */ targetElementRef?: ElementRef; /** * Should dropdown be rendered in target element */ renderInHost?: boolean; /** * If TRUE popover will min-width of @targetElementRef */ setupMinWidth?: boolean; /** * Custom offset from @targetElementRef */ targetElementOffset?: number; /** * Position popover relative to targetElementRef */ position: "bottom" | "top" | "right" | "left"; horizontalAlign?: HorizontalAlign; /** * Make position fixed for popover window */ fixed?: boolean; /** * Animate popover fade in/out */ animate?: boolean; /** * Provide additional class for popover window */ popoverClass?: string; /** * Hides popover arrow */ hideArrow?: boolean; /** * Specify absolute X position of popover */ posX?: number; /** * Specify absolute Y position of popover */ posY?: number; /** * Injector to create component */ injector?: Injector; /** * Display full popover on mobile */ mobileView?: boolean; }