@ngneat/helipopper
Version:
A Powerful Tooltip and Popover for Angular Applications
54 lines (49 loc) • 2.54 kB
TypeScript
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 };