@vismaux/ngx-nordic-cool
Version:
Common Nordic-Cool components for Angular.
34 lines • 4.45 kB
JavaScript
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=