https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event
клик срабатывает после событий mousedown и mouseup, в указанном порядке.
Вам, вероятно, придется создавать обработчики mousedown и mouseup, которые устанавливают некоторый временной интервал.
mousedown запустит некоторый таймер ... т.е. 200 мс, и если событие mouseup будет запущено в течение этого интервала, вы можете рассматривать его как щелчок и вызывать getInfo с событием, переданным mouseup
если событие mouseup вызывается за пределами этого интервала, предположим, что это действие мыши по перетаскиванию и игнорируйте его.
@ViewChild('map') mapElem: ElementRef;
ngAfterViewInit() {
const mousedown$ = fromEvent(this.mapElem.nativeElement, 'mousedown');
const mouseup$ = fromEvent(this.mapElem.nativeElement, 'mouseup');
mousedown$.subscribe(e => {
const clickTimer$ = timer(200);
mouseup$.pipe(takeUntil(clickTimer$)).subscribe(e => this.getInfo(e));
});
}
getInfo(e) {
console.log('click')
}
https://stackblitz.com/edit/angular-sobuqt
проверьте вывод консоли на этой демонстрации, которую я сделал, вы увидите, какое поведение вы хотите.