UNPKG

@lunaeme/circe-click-outside

Version:
70 lines (64 loc) 2.21 kB
import { __decorate } from 'tslib'; import { EventEmitter, ElementRef, Input, Output, HostListener, Directive, NgModule } from '@angular/core'; import { EventsService, EventsModule } from '@lunaeme/circe-core'; var ClickOutsideDirective = /** @class */ (function () { function ClickOutsideDirective(_ev, _el) { this._ev = _ev; this._el = _el; this.apply = true; this.exceptions = []; this.clickOutside = new EventEmitter(); this._host = this._el.nativeElement; } ClickOutsideDirective.prototype.onMouseEnter = function (event) { if (this.apply) { this._ev.preventNoNeededEvent(event); var _eventTarget = event.target; if (!this._host.contains(_eventTarget) && (!this.exceptions.includes(_eventTarget.id))) { this.clickOutside.emit(); } } }; ClickOutsideDirective.ctorParameters = function () { return [ { type: EventsService }, { type: ElementRef } ]; }; __decorate([ Input() ], ClickOutsideDirective.prototype, "apply", void 0); __decorate([ Input() ], ClickOutsideDirective.prototype, "exceptions", void 0); __decorate([ Output() ], ClickOutsideDirective.prototype, "clickOutside", void 0); __decorate([ HostListener('document:click', ['$event']) ], ClickOutsideDirective.prototype, "onMouseEnter", null); ClickOutsideDirective = __decorate([ Directive({ selector: '[ccClickOutside]' }) ], ClickOutsideDirective); return ClickOutsideDirective; }()); var ClickOutsideModule = /** @class */ (function () { function ClickOutsideModule() { } ClickOutsideModule = __decorate([ NgModule({ exports: [ClickOutsideDirective], declarations: [ClickOutsideDirective], imports: [EventsModule.forChild()] }) ], ClickOutsideModule); return ClickOutsideModule; }()); /* * Public API Surface of click-outside */ /** * Generated bundle index. Do not edit. */ export { ClickOutsideDirective, ClickOutsideModule }; //# sourceMappingURL=lunaeme-circe-click-outside.js.map