import * as i0 from '@angular/core'; import { OnDestroy, ModelSignal, TemplateRef } from '@angular/core'; import * as i3 from 'tableau-ui-angular/dialog'; import * as i4 from '@angular/common'; declare class TooltipDirective implements OnDestroy { private readonly dialogService; /** * Tooltip directive to show a tooltip on hover. * The tooltip can be a string or a TemplateRef. * The tooltip will be positioned relative to the element it is applied to. * The tooltip will be destroyed when the element is destroyed. * The tooltip will be opened on mouse enter and closed on mouse leave. * @default undefined */ readonly $tooltip: ModelSignal | string | null | undefined>; /** * Context for the tooltip template. * This is used to pass data to the tooltip template. * If the tooltip is a string, this will be ignored. * If the tooltip is a TemplateRef, this will be used as the context for the template. * @default undefined */ readonly $tooltipContext: ModelSignal; /** * Position of the tooltip relative to the element. * Can be 'top', 'bottom', 'left', or 'right'. * @default 'top' */ readonly $tooltipPosition: ModelSignal<"bottom" | "left" | "right" | "top">; /** * Margin around the tooltip. * This is used to position the tooltip away from the element. * It can be a string representing a CSS value (e.g., '5px', '1rem', '10%'). * @default '5px' */ readonly $tooltipMargin: ModelSignal; /** * Padding inside the tooltip. * This is used to add space inside the tooltip around the content. * It can be a string representing a CSS value (e.g., '0.5rem', '1rem'). * It can also be any set of padding values like '0.5rem 1rem' for top/bottom and left/right padding. * @default '0.5rem' */ readonly $tooltipPadding: ModelSignal; /** * Mode for the tooltip arguments. * If 'individual', the tooltip will use the individual properties provided ([tooltip], `[tooltipContext]`, `[tooltipPosition]`, and `[tooltipMargin]`). * If 'full', the tooltip will use the full arguments provided in `[tooltipFullArgs]`. * If 'lazy', the tooltip will use lazy evaluation of arguments by calling the provided in `[tooltipLazyArgs]` function. * tooltipContext`, `$tooltipPosition`, and `$tooltipMargin`. * @default 'individual' */ readonly $tooltipArgsMode: i0.InputSignal<"full" | "individual" | "lazy">; /** * Full arguments for the tooltip. * This is used to pass all the arguments to the tooltip. * If this is provided, it will override the individual tooltip properties. * This is used to set only. */ readonly $tooltipFullArgs: i0.InputSignal>; /** * Lazy arguments for the tooltip. * The passed function is called to determine if a tooltip is needed when the element is hovered. * Only works if the `tooltipArgsMode` is set to 'lazy'. * This is used to pass a function that returns the tooltip arguments. * This is useful for cases where the tooltip arguments are not known at the time of directive initialization. * If this is provided, it will override the individual tooltip properties. * This is used to set only. */ readonly $tooltipLazyArgs: i0.InputSignal<() => TooltipArgs | undefined>; private readonly tooltipArgsChanged; private tooltipDialogRef; private readonly elementRef; onMouseEnter(e: MouseEvent): void; onMouseLeave(): void; ngOnDestroy(): void; private createTooltip; private destroyTooltip; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[tooltip]", never, { "$tooltip": { "alias": "tooltip"; "required": true; "isSignal": true; }; "$tooltipContext": { "alias": "tooltipContext"; "required": false; "isSignal": true; }; "$tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "$tooltipMargin": { "alias": "tooltipMargin"; "required": false; "isSignal": true; }; "$tooltipPadding": { "alias": "tooltipPadding"; "required": false; "isSignal": true; }; "$tooltipArgsMode": { "alias": "tooltipArgsMode"; "required": false; "isSignal": true; }; "$tooltipFullArgs": { "alias": "tooltipFullArgs"; "required": false; "isSignal": true; }; "$tooltipLazyArgs": { "alias": "tooltipLazyArgs"; "required": false; "isSignal": true; }; }, { "$tooltip": "tooltipChange"; "$tooltipContext": "tooltipContextChange"; "$tooltipPosition": "tooltipPositionChange"; "$tooltipMargin": "tooltipMarginChange"; "$tooltipPadding": "tooltipPaddingChange"; }, never, never, false, never>; } interface TooltipArgs { template: TemplateRef | string | null | undefined; context: T | undefined; position?: 'bottom' | 'left' | 'right' | 'top'; margin?: string; padding?: string; } declare class TooltipComponent { readonly dialogData: TooltipComponentArgs; readonly stringTooltip: string | undefined; readonly templateTooltip: TemplateRef | undefined; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "tab-tooltip", never, {}, {}, never, never, false, never>; } interface TooltipComponentArgs { tooltip: TemplateRef | string; tooltipContext: T; padding: string; } declare class TableauUiTooltipModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { TableauUiTooltipModule, TooltipDirective }; export type { TooltipArgs };