UNPKG

@ngneat/helipopper

Version:

A Powerful Tooltip and Popover for Angular Applications

54 lines (49 loc) 2.54 kB
import tippy, { Props, Instance } from 'tippy.js'; import { InjectionToken, Type, ElementRef, Provider, EnvironmentProviders } from '@angular/core'; import { Observable } from 'rxjs'; import { ViewOptions, ResolveViewRef, Content } from '@ngneat/overview'; interface CreateOptions extends Partial<TippyProps>, ViewOptions { variation: string; preserveView: boolean; className: string | string[]; data: any; } interface TippyInstance extends Instance { data?: any; } type TippyProps = Props; type VariationConfig = Partial<TippyProps> & { isContextMenu?: boolean; }; interface ExtendedTippyProps extends TippyProps { variations: Record<string, VariationConfig>; defaultVariation: keyof ExtendedTippyProps['variations']; beforeRender?: (text: string) => string; zIndexGetter?(): number; } type TippyElement = ElementRef | Element; interface ExtendedTippyInstance<T> extends TippyInstance { view: ResolveViewRef<T> | null; $viewOptions: ViewOptions; context?: ViewOptions['context']; } type TippyConfig = Partial<ExtendedTippyProps>; type TippyContent = Content | (() => Promise<Type<any>>); type TippyLoader = () => typeof tippy | Promise<{ default: typeof tippy; }>; declare const TIPPY_LOADER: InjectionToken<TippyLoader>; declare const TIPPY_CONFIG: InjectionToken<Partial<ExtendedTippyProps>>; declare const TIPPY_LOADER_COMPONENT: InjectionToken<Type<unknown>>; type TippyLoaderTiming = Observable<void>; declare const TIPPY_LOADER_TIMING: InjectionToken<TippyLoaderTiming>; type Variation = Partial<TippyProps>; declare const tooltipVariation: Variation; declare const popperVariation: Variation; declare function withContextMenuVariation(baseVariation: Variation): VariationConfig; declare function provideTippyLoader(loader: TippyLoader, ...features: EnvironmentProviders[]): EnvironmentProviders; declare function provideTippyConfig(config: TippyConfig): Provider; declare function withTippyLoaderComponent(component: Type<unknown>): EnvironmentProviders; declare function withTippyLoaderTiming(timing: () => TippyLoaderTiming): EnvironmentProviders; export { TIPPY_CONFIG, TIPPY_LOADER, TIPPY_LOADER_COMPONENT, TIPPY_LOADER_TIMING, popperVariation, provideTippyConfig, provideTippyLoader, tooltipVariation, withContextMenuVariation, withTippyLoaderComponent, withTippyLoaderTiming }; export type { CreateOptions, ExtendedTippyInstance, ExtendedTippyProps, TippyConfig, TippyContent, TippyElement, TippyInstance, TippyLoader, TippyLoaderTiming, TippyProps, VariationConfig };