@bokeh/bokehjs
Version:
Interactive, novel data visualization
71 lines • 2.13 kB
TypeScript
import type { StyleSheetLike } from "../dom";
import { ClassList } from "../dom";
import type { Orientation } from "../enums";
import type { MenuItemLike, MenuItem } from "../../models/ui/menus";
import type { IconLike } from "../../models/common/kinds";
export type ScreenPoint = {
left?: number;
right?: number;
top?: number;
bottom?: number;
};
export type At = ScreenPoint | {
left_of: HTMLElement;
} | {
right_of: HTMLElement;
} | {
below: HTMLElement;
} | {
above: HTMLElement;
};
export type MenuEntry = {
icon?: IconLike;
label?: string;
tooltip?: string;
class?: string;
content?: HTMLElement;
custom?: HTMLElement;
checked?: () => boolean;
action?: () => void;
disabled?: () => boolean;
};
export type MenuItemLike_ = MenuItemLike | MenuEntry;
export type MenuOptions = {
target: HTMLElement;
orientation?: Orientation;
reversed?: boolean;
labels?: boolean;
prevent_hide?: (event: MouseEvent) => boolean;
extra_styles?: StyleSheetLike[];
};
export declare class ContextMenu {
readonly items: MenuItemLike_[];
readonly el: HTMLElement;
readonly shadow_el: ShadowRoot;
protected _open: boolean;
get is_open(): boolean;
get can_open(): boolean;
readonly target: HTMLElement;
readonly orientation: Orientation;
readonly reversed: boolean;
readonly labels: boolean;
readonly prevent_hide?: (event: MouseEvent) => boolean;
readonly extra_styles: StyleSheetLike[];
readonly class_list: ClassList;
constructor(items: MenuItemLike_[], options: MenuOptions);
protected _item_click: (entry: MenuEntry | MenuItem) => void;
protected _on_mousedown: (event: MouseEvent) => void;
protected _on_keydown: (event: KeyboardEvent) => void;
protected _on_blur: () => void;
remove(): void;
protected _listen(): void;
protected _unlisten(): void;
protected _position(at: At): void;
stylesheets(): StyleSheetLike[];
empty(): void;
render(): void;
show(at?: At): void;
hide(): void;
toggle(at?: At): void;
}
//# sourceMappingURL=menus.d.ts.map