mithril-materialized
Version:
A materialize library for mithril.
60 lines (59 loc) • 2.08 kB
TypeScript
import { FactoryComponent, Attributes } from 'mithril';
export interface TooltipOptions {
/** Delay before tooltip appears on hover */
enterDelay?: number;
/** Delay before tooltip disappears after hover ends */
exitDelay?: number;
/** HTML content for the tooltip */
html?: string | null;
/** Margin from element */
margin?: number;
/** Animation in duration */
inDuration?: number;
/** Animation out duration */
outDuration?: number;
/** Position of tooltip */
position?: 'top' | 'bottom' | 'left' | 'right';
/** Movement during transition */
transitionMovement?: number;
}
export declare class Tooltip {
el: HTMLElement;
tooltipEl: HTMLElement;
options: Required<TooltipOptions>;
private state;
private static defaults;
private _handleMouseEnterBound;
private _handleMouseLeaveBound;
private _handleFocusBound;
private _handleBlurBound;
constructor(el: HTMLElement, options?: TooltipOptions);
static getInstance(el: HTMLElement): Tooltip | undefined;
destroy(): void;
_appendTooltipEl(): void;
_updateTooltipContent(): void;
_setupEventHandlers(): void;
_removeEventHandlers(): void;
open(isManual?: boolean): void;
close(): void;
_setExitDelayTimeout(): void;
_setEnterDelayTimeout(isManual: boolean): void;
_positionTooltip(): void;
_repositionWithinScreen(x: number, y: number, width: number, height: number): {
x: number;
y: number;
};
_animateIn(): void;
_animateOut(): void;
_handleMouseEnter(): void;
_handleMouseLeave(): void;
_handleFocus(): void;
_handleBlur(): void;
_getAttributeOptions(): Partial<TooltipOptions>;
}
export interface TooltipComponentAttrs extends Attributes, TooltipOptions {
/** Element selector or reference to attach tooltip to */
targetSelector?: string;
}
export declare const TooltipComponent: FactoryComponent<TooltipComponentAttrs>;
export declare const initTooltips: (selector?: string, options?: TooltipOptions) => Tooltip[];