UNPKG

@inaccess-fang/ui-components

Version:

The Inaccess UI Components Library for the Front-end projects

30 lines 3.2 kB
// @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==