@inaccess-fang/ui-components
Version:
The Inaccess UI Components Library for the Front-end projects
30 lines • 3.2 kB
JavaScript
// @angular/core
import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';
export class ClickOutsideElementDirective {
constructor(_elementRef) {
this._elementRef = _elementRef;
this.clickOutsideElement = new EventEmitter();
}
onClick(event, targetElement) {
if (!targetElement) {
return;
}
const clickedInsideElement = this._elementRef.nativeElement.contains(targetElement);
if (!clickedInsideElement) {
this.clickOutsideElement.emit(event);
}
}
}
ClickOutsideElementDirective.decorators = [
{ type: Directive, args: [{
selector: '[clickOutsideElement]'
},] }
];
ClickOutsideElementDirective.ctorParameters = () => [
{ type: ElementRef }
];
ClickOutsideElementDirective.propDecorators = {
clickOutsideElement: [{ type: Output }],
onClick: [{ type: HostListener, args: ['document:click', ['$event', '$event.target'],] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9pYXNvbmFzL0Rlc2t0b3AvY3VycmVudC9mYW5nLXVpLWNvbXBvbmVudHMtbGlicmFyeS9wcm9qZWN0cy9mYW5nLXVpLWNvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS9jbGljay1vdXRzaWRlLWVsZW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsxRixNQUFNLE9BQU8sNEJBQTRCO0lBSXhDLFlBQ1MsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFIdEIsd0JBQW1CLEdBQTZCLElBQUksWUFBWSxFQUFFLENBQUM7SUFJMUUsQ0FBQztJQUdHLE9BQU8sQ0FBQyxLQUFpQixFQUFFLGFBQTBCO1FBQzNELElBQUssQ0FBQyxhQUFhLEVBQUc7WUFDckIsT0FBTztTQUNQO1FBRUQsTUFBTSxvQkFBb0IsR0FBWSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFN0YsSUFBSyxDQUFDLG9CQUFvQixFQUFHO1lBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckM7SUFDRixDQUFDOzs7WUF0QkQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSx1QkFBdUI7YUFDakM7OztZQUptQixVQUFVOzs7a0NBTzVCLE1BQU07c0JBTU4sWUFBWSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBhbmd1bGFyL2NvcmVcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbY2xpY2tPdXRzaWRlRWxlbWVudF0nXG59KVxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZUVsZW1lbnREaXJlY3RpdmUge1xuXG5cdEBPdXRwdXQoKSBjbGlja091dHNpZGVFbGVtZW50OiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxuXHQpIHt9XG5cblx0QEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCcsICckZXZlbnQudGFyZ2V0J10pXG5cdHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuXHRcdGlmICggIXRhcmdldEVsZW1lbnQgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgY2xpY2tlZEluc2lkZUVsZW1lbnQ6IGJvb2xlYW4gPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG5cblx0XHRpZiAoICFjbGlja2VkSW5zaWRlRWxlbWVudCApIHtcblx0XHRcdHRoaXMuY2xpY2tPdXRzaWRlRWxlbWVudC5lbWl0KGV2ZW50KTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==