import { ElementRef, EventEmitter, Injector, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { CoreBaseComponent } from '../common/base.component'; import { TooltipShowMode } from './models/tooltip-options'; import { TooltipZoneDirective } from './tooltip-zone.directive'; import * as i0 from "@angular/core"; export declare class ToolTipFocusEvent { static focusIn: string; static focusOut: string; } export declare class ToolTipMouseEvent { static mouseEnter: string; static mouseLeave: string; } /** * * @smeDoc {@label Tooltip @id sme-tooltip-directive} * * @overview * @file {@filepath ./examples/overview.md} * * @example {@label Basic Usage @id basic-usage} * @file {@filename component.html @filepath ./examples/basic-usage.component.html} * @file {@filename component.ts @filepath ./examples/tooltip-example.component.ts} * * @example {@label Custom Template @id custom-template} * @file {@filename component.html @filepath ./examples/template-reference.component.html} * @file {@filename component.ts @filepath ./examples/tooltip-example.component.ts} * * @example {@label Custom Implementation @id tooltip-zone} * @file {@filename component.html @filepath ./examples/tooltip-zone.component.html} */ /** * Directive to create tooltips in the tooltip host. */ export declare class TooltipDirective extends CoreBaseComponent implements OnDestroy, OnChanges, OnInit { private elementRef; private domSanitizer; /** * The source name to use for logging */ protected get logSourceName(): string; toolTipFocusEventTriggered: EventEmitter; toolTipMouseEventTriggered: EventEmitter; private internalTitle; /** * Sets the native tooltip property. * * This input is susceptible to XSS attacks, and is sanitized if necessary. * In cases the input is sanitized, the displayed tooltip to the user will only show the sanitized content. * This behavior (defense) is expected since users should not present XSS payloads in the [title] attribute. */ set title(input: string); /** * Gets the native tooltip property. */ get title(): string; /** * A template reference for a custom tooltip. */ smeTooltip: TemplateRef; /** * A data object that can be accessed in a template reference for a custom tooltip. */ smeTooltipContext: any; /** * The input for the placement of the tooltip. Defaults to 'bottom'. */ smeTooltipPlacement: string; /** * Indicates when to show the tooltip. */ smeTooltipShowOn: TooltipShowMode; /** * Indicates when to explicitly not show the tooltip in cases where it needs to be shown only under certain conditions. */ smeTooltipShow: boolean; /** * Indicates if receiving hover and focus events. */ smeTooltipEnableEvents: boolean; /** * Indicates if hide the tooltip when inner HTML is the same as tooltip content * In certain cases, we always need the tooltip to show, such as the multi-tool component tool list. */ hideOnTooltipSameAsText: boolean; /** * The defined zone for showing tooltip with a shortcut. The zone is a wrapper for the content that is relevant to the tooltip. */ tooltipZone: TooltipZoneDirective; /** * Gets the id of the tooltip that will describe this element */ get ariaDescribedBy(): string; /** * The actual placement of the tooltip */ private get placement(); /** * The tooltip host */ private get tooltipHost(); /** * Indicates that tooltips should show on focus/hover. */ get showOnfocus(): boolean; /** * Internal placeholder for the current focused state */ private focused; /** * Internal placeholder for the current clicked state */ private clicked; /** * Internal placeholder for the current hovered state */ private hovered; /** * Internal mutation observer used to watch for disabled attribute on elements */ private observer; /** * Internal placeholder for tooltip triggering cause (click, hover, focus) */ private tooltipTrigger; /** * Indicates if the tooltip is being shown. */ get shown(): boolean; /** * Indicates that this tooltip should show only when the text is truncated * We assume this is true if the title attribute is exactly the same as the text content of this node. */ private get isTooltipSameAsText(); /** * Indicates that this tooltip should be shown */ private get shouldShow(); /** * Initializes a new instance of the @see PivotComponent class. * @param injector The angular injection service. required by @SmeInjectableBase() decorator in the base @see BaseComponent class */ constructor(elementRef: ElementRef, domSanitizer: DomSanitizer, injector: Injector); /** * Implementation of angular OnInit interface */ ngOnInit(): void; /** * Implementation of angular OnChanges interface * On any change we update the tooltip if it is shown */ ngOnChanges(changes: SimpleChanges): void; /** * Implementation of angular OnDestroy interface */ ngOnDestroy(): void; /** * Creates the idBag used by this component to store unique element ids. * id values will be assigned be the @see BaseComponent super class. */ protected createIdBag(): MsftSme.StringMap; /** * Host listeners for tooltip focus events */ onFocusEvent(event: Event): void; /** * Host listeners for tooltip mouse events */ onMouseEvent(event: Event): void; /** * Host listeners for click and enter */ onClick(event: Event): void; /** * Shows or hides the tooltip if either the hover or focused states are true * @param hovered indicates the element is hovered * @param focused indicates the element is focused */ private showHideTooltip; /** * Shows the tooltip. */ show(showOnShortCut?: boolean, restoreFocusTo?: HTMLElement): void; /** * Hides the tooltip. */ hide(): void; private getTooltipOptions; /** * Determines if the text node content is truncated. */ private getIsTruncated; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; }