UNPKG

2.48 kBTypeScriptView Raw
1import { Disposable, DisposableCollection } from '../common';
2import { MarkdownString } from '../common/markdown-rendering/markdown-string';
3import { MarkdownRenderer, MarkdownRendererFactory } from './markdown-rendering/markdown-renderer';
4import { PreferenceService } from './preferences';
5import '../../src/browser/style/hover-service.css';
6export declare type HoverPosition = 'left' | 'right' | 'top' | 'bottom';
7export declare namespace HoverPosition {
8 function invertIfNecessary(position: HoverPosition, target: DOMRect, host: DOMRect, totalWidth: number, totalHeight: number): HoverPosition;
9}
10export interface HoverRequest {
11 content: string | MarkdownString | HTMLElement;
12 target: HTMLElement;
13 /**
14 * The position where the hover should appear.
15 * Note that the hover service will try to invert the position (i.e. right -> left)
16 * if the specified content does not fit in the window next to the target element
17 */
18 position: HoverPosition;
19 /**
20 * Additional css classes that should be added to the hover box.
21 * Used to style certain boxes different e.g. for the extended tab preview.
22 */
23 cssClasses?: string[];
24 /**
25 * A function to render a visual preview on the hover.
26 * Function that takes the desired width and returns a HTMLElement to be rendered.
27 */
28 visualPreview?: (width: number) => HTMLElement | undefined;
29}
30export declare class HoverService {
31 protected static hostClassName: string;
32 protected static styleSheetId: string;
33 protected readonly preferences: PreferenceService;
34 protected readonly markdownRendererFactory: MarkdownRendererFactory;
35 protected _markdownRenderer: MarkdownRenderer | undefined;
36 protected get markdownRenderer(): MarkdownRenderer;
37 protected _hoverHost: HTMLElement | undefined;
38 protected get hoverHost(): HTMLElement;
39 protected pendingTimeout: Disposable | undefined;
40 protected hoverTarget: HTMLElement | undefined;
41 protected lastHidHover: number;
42 protected readonly disposeOnHide: DisposableCollection;
43 requestHover(request: HoverRequest): void;
44 protected getHoverDelay(): number;
45 protected renderHover(request: HoverRequest): Promise<void>;
46 protected setHostPosition(target: HTMLElement, host: HTMLElement, position: HoverPosition): HoverPosition;
47 protected listenForMouseOut(): void;
48 cancelHover(): void;
49 protected unRenderHover(): void;
50}
51//# sourceMappingURL=hover-service.d.ts.map
\No newline at end of file