@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
25 lines (24 loc) • 997 B
JavaScript
// SPDX-License-Identifier: Apache-2.0
import { MapBrowserEvent } from 'ol';
// Some events consist of multiple simpler events. gGEventDependencies defines
// which additional events have to be considered/blocked when an event registers exclusively.
export const gGEventDependencies = {
'map.select': ['map.mouseclick', 'map.mouseclick.ctrl', 'map.mouseclick.shift'],
'map.draw': ['map.mouseclick', 'map.mousedoubleclick'],
'map.modify': ['map.mouseclick']
};
const checkMouseButton = (evt, button) => {
if (evt instanceof MapBrowserEvent && evt.originalEvent) {
evt = evt.originalEvent;
}
return ((evt instanceof PointerEvent && evt.isPrimary) || evt instanceof MouseEvent) && evt.button === button;
};
export const isPrimaryPointerAction = (evt) => {
return checkMouseButton(evt, 0);
};
export const isAlternateMouseClick = (evt) => {
return checkMouseButton(evt, 2);
};
export const isMouseWheelClick = (evt) => {
return checkMouseButton(evt, 1);
};