import { TemplateRef } from '@angular/core'; import { Observable } from 'rxjs'; export type ReadTipPositionType = 'left' | 'right' | 'top' | 'bottom' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom'; export interface ReadTipRule { key?: string; selector: string; trigger?: 'hover' | 'click'; title?: string; content?: string; showAnimate?: boolean; mouseenterTime?: number; mouseleaveTime?: number; position?: ReadTipPositionType | ReadTipPositionType[]; overlayClassName?: string; appendToBody?: boolean; dataFn?: ({ element, rule, }: { element: any; rule: any; }) => Observable<{ title?: string; content?: string; template?: TemplateRef; customData?: any; }>; } export type ReadTipRules = ReadTipRule | ReadTipRule[]; export interface ReadTipOptions { trigger?: 'hover' | 'click'; showAnimate?: boolean; mouseenterTime?: number; mouseleaveTime?: number; position?: ReadTipPositionType | ReadTipPositionType[]; overlayClassName?: string; appendToBody?: boolean; rules: ReadTipRules; }