UNPKG

@vismaux/ngx-nordic-cool

Version:
34 lines 4.45 kB
import { Directive, EventEmitter, Input, Output, } from '@angular/core'; import { Subject } from 'rxjs'; import { registerOutsideClick } from '../utils/outside-click.utils'; import * as i0 from "@angular/core"; export class NcOutsideClickDirective { constructor(el, ngZone) { this.el = el; this.ngZone = ngZone; this.destroyed$ = new Subject(); this.excludedElements = []; this.outsideClick = new EventEmitter(); } ngAfterViewInit() { registerOutsideClick(() => this.outsideClick.emit(), [this.el.nativeElement, ...this.excludedElements], this.destroyed$, this.ngZone); } ngOnDestroy() { this.destroyed$.next(); } } NcOutsideClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcOutsideClickDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); NcOutsideClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: NcOutsideClickDirective, selector: "[ncOutsideClick]", inputs: { excludedElements: ["ncOutsideClickExcluded", "excludedElements"] }, outputs: { outsideClick: "ncOutsideClick" }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcOutsideClickDirective, decorators: [{ type: Directive, args: [{ selector: '[ncOutsideClick]', }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { excludedElements: [{ type: Input, args: ['ncOutsideClickExcluded'] }], outsideClick: [{ type: Output, args: ['ncOutsideClick'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0c2lkZS1jbGljay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9yZGljLWNvb2wvc3JjL2xpYi9kcm9wZG93bi9vdXRzaWRlLWNsaWNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBS3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFBb0IsRUFBMkIsRUFBVSxNQUFjO1FBQW5ELE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUwvRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVGLHFCQUFnQixHQUFrQixFQUFFLENBQUM7UUFDNUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWMsQ0FBQztJQUUzRSxlQUFlO1FBQ2Isb0JBQW9CLENBQ2xCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQzlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFDakQsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsTUFBTSxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7b0hBbkJVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7c0hBSWtDLGdCQUFnQjtzQkFBaEQsS0FBSzt1QkFBQyx3QkFBd0I7Z0JBQ0wsWUFBWTtzQkFBckMsTUFBTTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJPdXRzaWRlQ2xpY2sgfSBmcm9tICcuLi91dGlscy9vdXRzaWRlLWNsaWNrLnV0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25jT3V0c2lkZUNsaWNrXScsXG59KVxuZXhwb3J0IGNsYXNzIE5jT3V0c2lkZUNsaWNrRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcblxuICBASW5wdXQoJ25jT3V0c2lkZUNsaWNrRXhjbHVkZWQnKSBleGNsdWRlZEVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gW107XG4gIEBPdXRwdXQoJ25jT3V0c2lkZUNsaWNrJykgb3V0c2lkZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICByZWdpc3Rlck91dHNpZGVDbGljayhcbiAgICAgICgpID0+IHRoaXMub3V0c2lkZUNsaWNrLmVtaXQoKSxcbiAgICAgIFt0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIC4uLnRoaXMuZXhjbHVkZWRFbGVtZW50c10sXG4gICAgICB0aGlzLmRlc3Ryb3llZCQsXG4gICAgICB0aGlzLm5nWm9uZVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG59XG4iXX0=