Angular. Обработка клика за пределами элемента

Запись от 25.06.2017

Определение клика за пределами компонента или любого элемента определяется следующим кодом:

import {Component, ElementRef, HostListener} from '@angular/core';

@Component({})
export class SomeComponent {
	constructor(private el: ElementRef) {}

	@HostListener('document:click', ['$event'])
	onClick(event: Event) {
		if (!this.el.nativeElement.contains(event.target)) {
			// action
		}
	}
}

В данном случае используется html-элемент компонента this.el.nativeElement, но также можно выбрать и любой другой элемент.

Идея взята отсюда: https://stackoverflow.com/a/35713421/6483146