mirror of
https://github.com/codex-team/editor.js
synced 2024-06-02 05:52:38 +02:00
4c0d806a12
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
/* eslint-disable jsdoc/no-undefined-types */
|
|
import Module from '../__module';
|
|
|
|
/**
|
|
* Use external module CodeX Tooltip
|
|
*/
|
|
import CodeXTooltips, { TooltipContent, TooltipOptions } from 'codex-tooltip';
|
|
import { ModuleConfig } from '../../types-internal/module-config';
|
|
|
|
/**
|
|
* Tooltip
|
|
*
|
|
* Decorates any tooltip module like adapter
|
|
*/
|
|
export default class Tooltip extends Module {
|
|
/**
|
|
* Tooltips lib: CodeX Tooltips
|
|
*
|
|
* @see https://github.com/codex-team/codex.tooltips
|
|
*/
|
|
private lib: CodeXTooltips = new CodeXTooltips();
|
|
|
|
/**
|
|
* @class
|
|
* @param {EditorConfig} - Editor's config
|
|
*/
|
|
constructor({ config }: ModuleConfig) {
|
|
super({ config });
|
|
}
|
|
|
|
/**
|
|
* Shows tooltip on element with passed HTML content
|
|
*
|
|
* @param {HTMLElement} element - any HTML element in DOM
|
|
* @param {TooltipContent} content - tooltip's content
|
|
* @param {TooltipOptions} options - showing settings
|
|
*/
|
|
public show(element: HTMLElement, content: TooltipContent, options?: TooltipOptions): void {
|
|
this.lib.show(element, content, options);
|
|
}
|
|
|
|
/**
|
|
* Hides tooltip
|
|
*/
|
|
public hide(): void {
|
|
this.lib.hide();
|
|
}
|
|
|
|
/**
|
|
* Binds 'mouseenter' and 'mouseleave' events that shows/hides the Tooltip
|
|
*
|
|
* @param {HTMLElement} element - any HTML element in DOM
|
|
* @param {TooltipContent} content - tooltip's content
|
|
* @param {TooltipOptions} options - showing settings
|
|
*/
|
|
public onHover(element: HTMLElement, content: TooltipContent, options?: TooltipOptions): void {
|
|
this.lib.onHover(element, content, options);
|
|
}
|
|
}
|