terra-draw
Version:
Frictionless map drawing across mapping provider
61 lines (60 loc) • 3.18 kB
TypeScript
import { Project, Unproject, TerraDrawCallbacks, TerraDrawChanges, TerraDrawMouseEvent, SetCursor, TerraDrawStylingFunction, GetLngLatFromEvent, TerraDrawAdapter } from "../common";
import { AdapterListener } from "./adapter-listener";
type BasePointerListener = (event: PointerEvent) => void;
type BaseKeyboardListener = (event: KeyboardEvent) => void;
type BaseMouseListener = (event: MouseEvent) => void;
export type BaseAdapterConfig = {
coordinatePrecision?: number;
minPixelDragDistanceDrawing?: number;
minPixelDragDistance?: number;
minPixelDragDistanceSelecting?: number;
};
export declare abstract class TerraDrawBaseAdapter implements TerraDrawAdapter {
constructor(config: BaseAdapterConfig);
private _nextKeyUpIsContextMenu;
protected _minPixelDragDistance: number;
protected _minPixelDragDistanceDrawing: number;
protected _minPixelDragDistanceSelecting: number;
protected _lastDrawEvent: TerraDrawMouseEvent | undefined;
protected _coordinatePrecision: number;
protected _heldKeys: Set<string>;
protected _listeners: AdapterListener<BasePointerListener | BaseKeyboardListener | BaseMouseListener>[];
protected _dragState: "not-dragging" | "pre-dragging" | "dragging";
protected _currentModeCallbacks: TerraDrawCallbacks | undefined;
abstract getMapEventElement(): HTMLElement;
protected getButton(event: PointerEvent | MouseEvent): "neither" | "left" | "middle" | "right";
protected getMapElementXYPosition(event: PointerEvent | MouseEvent): {
containerX: number;
containerY: number;
};
protected getDrawEventFromEvent(event: PointerEvent | MouseEvent, isContextMenu?: boolean): TerraDrawMouseEvent | null;
/**
* Registers the provided callbacks for the current drawing mode and attaches
* the necessary event listeners.
* @param {TerraDrawCallbacks} callbacks - An object containing callback functions
* for handling various drawing events in the current mode.
*/
register(callbacks: TerraDrawCallbacks): void;
/**
* Gets the coordinate precision. The coordinate precision is the number of decimal places in geometry
* coordinates stored in the store.
* @returns {number} The coordinate precision.
*/
getCoordinatePrecision(): number;
protected getAdapterListeners(): AdapterListener<BasePointerListener>[];
/**
* Unregisters the event listeners for the current drawing mode.
* This is typically called when switching between drawing modes or
* stopping the drawing process.
*/
unregister(): void;
abstract clear(): void;
abstract project(...args: Parameters<Project>): ReturnType<Project>;
abstract unproject(...args: Parameters<Unproject>): ReturnType<Unproject>;
abstract setCursor(...args: Parameters<SetCursor>): ReturnType<SetCursor>;
abstract getLngLatFromEvent(...event: Parameters<GetLngLatFromEvent>): ReturnType<GetLngLatFromEvent>;
abstract setDraggability(enabled: boolean): void;
abstract setDoubleClickToZoom(enabled: boolean): void;
abstract render(changes: TerraDrawChanges, styling: TerraDrawStylingFunction): void;
}
export {};