1import { Signal } from "./signaling"; 2import { Keys } from "./dom"; 3import { PlotView } from "../models/plots/plot"; 4import { ToolView } from "../models/tools/tool"; 5import { RendererView } from "../models/renderers/renderer"; 6import type { CanvasView } from "../models/canvas/canvas"; 7declare type HammerEvent = { 8 type: string; 9 deltaX: number; 10 deltaY: number; 11 scale: number; 12 rotation: number; 13 srcEvent: TouchEvent | MouseEvent | PointerEvent; 14}; 15export declare type ScreenCoord = { 16 sx: number; 17 sy: number; 18}; 19export declare type PanEvent = { 20 type: "pan" | "panstart" | "panend"; 21 sx: number; 22 sy: number; 23 deltaX: number; 24 deltaY: number; 25 shiftKey: boolean; 26 ctrlKey: boolean; 27}; 28export declare type PinchEvent = { 29 type: "pinch" | "pinchstart" | "pinchend"; 30 sx: number; 31 sy: number; 32 scale: number; 33 shiftKey: boolean; 34 ctrlKey: boolean; 35}; 36export declare type RotateEvent = { 37 type: "rotate" | "rotatestart" | "rotateend"; 38 sx: number; 39 sy: number; 40 rotation: number; 41 shiftKey: boolean; 42 ctrlKey: boolean; 43}; 44export declare type GestureEvent = PanEvent | PinchEvent | RotateEvent; 45export declare type TapEvent = { 46 type: "tap" | "doubletap" | "press" | "pressup" | "contextmenu"; 47 sx: number; 48 sy: number; 49 shiftKey: boolean; 50 ctrlKey: boolean; 51}; 52export declare type MoveEvent = { 53 type: "mousemove" | "mouseenter" | "mouseleave"; 54 sx: number; 55 sy: number; 56 shiftKey: boolean; 57 ctrlKey: boolean; 58}; 59export declare type ScrollEvent = { 60 type: "wheel"; 61 sx: number; 62 sy: number; 63 delta: number; 64 shiftKey: boolean; 65 ctrlKey: boolean; 66}; 67export declare type UIEvent = GestureEvent | TapEvent | MoveEvent | ScrollEvent; 68export declare type KeyEvent = { 69 type: "keyup" | "keydown"; 70 keyCode: Keys; 71}; 72export declare type EventType = "pan" | "pinch" | "rotate" | "move" | "tap" | "press" | "pressup" | "scroll"; 73export declare type UISignal<E> = Signal<{ 74 id: string | null; 75 e: E; 76}, UIEventBus>; 77export declare class UIEventBus implements EventListenerObject { 78 readonly canvas_view: CanvasView; 79 readonly pan_start: UISignal<PanEvent>; 80 readonly pan: UISignal<PanEvent>; 81 readonly pan_end: UISignal<PanEvent>; 82 readonly pinch_start: UISignal<PinchEvent>; 83 readonly pinch: UISignal<PinchEvent>; 84 readonly pinch_end: UISignal<PinchEvent>; 85 readonly rotate_start: UISignal<RotateEvent>; 86 readonly rotate: UISignal<RotateEvent>; 87 readonly rotate_end: UISignal<RotateEvent>; 88 readonly tap: UISignal<TapEvent>; 89 readonly doubletap: UISignal<TapEvent>; 90 readonly press: UISignal<TapEvent>; 91 readonly pressup: UISignal<TapEvent>; 92 readonly move_enter: UISignal<MoveEvent>; 93 readonly move: UISignal<MoveEvent>; 94 readonly move_exit: UISignal<MoveEvent>; 95 readonly scroll: UISignal<ScrollEvent>; 96 readonly keydown: UISignal<KeyEvent>; 97 readonly keyup: UISignal<KeyEvent>; 98 private readonly hammer; 99 private menu; 100 get hit_area(): HTMLElement; 101 constructor(canvas_view: CanvasView); 102 destroy(): void; 103 handleEvent(e: KeyboardEvent): void; 104 protected _configure_hammerjs(): void; 105 register_tool(tool_view: ToolView): void; 106 private _register_tool; 107 protected _hit_test_renderers(plot_view: PlotView, sx: number, sy: number): RendererView | null; 108 set_cursor(cursor?: string): void; 109 protected _hit_test_frame(plot_view: PlotView, sx: number, sy: number): boolean; 110 protected _hit_test_canvas(plot_view: PlotView, sx: number, sy: number): boolean; 111 protected _hit_test_plot(sx: number, sy: number): PlotView | null; 112 protected _prev_move: { 113 sx: number; 114 sy: number; 115 plot_view: PlotView | null; 116 } | null; 117 protected _curr_pan: { 118 plot_view: PlotView; 119 } | null; 120 protected _curr_pinch: { 121 plot_view: PlotView; 122 } | null; 123 protected _curr_rotate: { 124 plot_view: PlotView; 125 } | null; 126 _trigger<E extends UIEvent>(signal: UISignal<E>, e: E, srcEvent: Event): void; 127 __trigger<E extends UIEvent>(plot_view: PlotView, signal: UISignal<E>, e: E, srcEvent: Event): void; 128 trigger<E>(signal: UISignal<E>, e: E, id?: string | null): void; 129 _trigger_bokeh_event(plot_view: PlotView, e: UIEvent): void; 130 _get_sxy(event: TouchEvent | MouseEvent | PointerEvent): ScreenCoord; 131 _pan_event(e: HammerEvent): PanEvent; 132 _pinch_event(e: HammerEvent): PinchEvent; 133 _rotate_event(e: HammerEvent): RotateEvent; 134 _tap_event(e: HammerEvent): TapEvent; 135 _move_event(e: MouseEvent): MoveEvent; 136 _scroll_event(e: WheelEvent): ScrollEvent; 137 _key_event(e: KeyboardEvent): KeyEvent; 138 _pan_start(e: HammerEvent): void; 139 _pan(e: HammerEvent): void; 140 _pan_end(e: HammerEvent): void; 141 _pinch_start(e: HammerEvent): void; 142 _pinch(e: HammerEvent): void; 143 _pinch_end(e: HammerEvent): void; 144 _rotate_start(e: HammerEvent): void; 145 _rotate(e: HammerEvent): void; 146 _rotate_end(e: HammerEvent): void; 147 _tap(e: HammerEvent): void; 148 _doubletap(e: HammerEvent): void; 149 _press(e: HammerEvent): void; 150 _pressup(e: HammerEvent): void; 151 _mouse_enter(e: MouseEvent): void; 152 _mouse_move(e: MouseEvent): void; 153 _mouse_exit(e: MouseEvent): void; 154 _mouse_wheel(e: WheelEvent): void; 155 _context_menu(e: MouseEvent): void; 156 _key_down(e: KeyboardEvent): void; 157 _key_up(e: KeyboardEvent): void; 158} 159export {}; 160//# sourceMappingURL=ui_events.d.ts.map