@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
42 lines (41 loc) • 1.53 kB
TypeScript
import { Coordinate } from 'ol/coordinate.js';
import IGirafeContext from '../../../tools/context/icontext.js';
export declare enum EntryInteractionType {
ENABLED = 0,
DISABLED = 1,
NOT_SHOWN = 2
}
export type MenuEntry = {
entry: string;
callback: (e: MouseEvent, mapCoordinate: Coordinate) => void;
prepare?: (e: MouseEvent, mapCoordinate: Coordinate) => EntryInteractionType;
};
/**
* Show a simple context menu when clicking on the map
*/
export declare class ContextMenu {
name: string;
private _active;
private readonly isExclusive;
private readonly overlay;
private readonly container;
private readonly openEventListener;
private readonly closeEventListener;
private readonly context;
private readonly menuEntries;
private menuEntryDivs;
private get map();
constructor(context: IGirafeContext, menuEntries?: MenuEntry[], isExclusive?: boolean, openCondition?: (evt: PointerEvent | MouseEvent, mapCoordinate: Coordinate) => boolean);
get visible(): boolean;
get active(): boolean;
setActive(active: boolean): void;
private enable;
private disable;
private handleContextmenuEvent;
updateMenuEntries(): void;
prepareMenuEntries(evt: PointerEvent | MouseEvent, mapCoordinate: Coordinate): void;
openMenu(mapCoordinates: Coordinate): void;
closeMenu(): void;
onClickMenuEntry(evt: PointerEvent | MouseEvent, callback: (e: PointerEvent | MouseEvent, mapCoordinate: Coordinate) => void): void;
remove(): void;
}