@terrencecastro/ngx-taskboard
Version:
Yet another angular taskboard
80 lines • 5.05 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/directives/outside-event-handler.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, ElementRef, EventEmitter, Input, NgZone, Output } from '@angular/core';
export class OutSideEventHandlerDirective {
/**
* @param {?} ngZone
* @param {?} el
*/
constructor(ngZone, el) {
this.ngZone = ngZone;
this.el = el;
this.event = 'click';
this.emitter = new EventEmitter();
}
/**
* @return {?}
*/
ngOnDestroy() {
this.el.nativeElement.removeEventListener(this.event, this.handler);
}
/**
* @return {?}
*/
ngOnInit() {
this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => {
/** @type {?} */
const nativeElement = this.el.nativeElement;
this.handler = (/**
* @param {?} $event
* @return {?}
*/
$event => {
this.emitter.emit($event);
});
nativeElement.addEventListener(this.event, this.handler, false);
}));
}
}
OutSideEventHandlerDirective.decorators = [
{ type: Directive, args: [{
selector: '[outSideEventHandler]'
},] }
];
/** @nocollapse */
OutSideEventHandlerDirective.ctorParameters = () => [
{ type: NgZone },
{ type: ElementRef }
];
OutSideEventHandlerDirective.propDecorators = {
event: [{ type: Input }],
emitter: [{ type: Output, args: ['outSideEventHandler',] }]
};
if (false) {
/** @type {?} */
OutSideEventHandlerDirective.prototype.event;
/** @type {?} */
OutSideEventHandlerDirective.prototype.emitter;
/**
* @type {?}
* @private
*/
OutSideEventHandlerDirective.prototype.handler;
/**
* @type {?}
* @private
*/
OutSideEventHandlerDirective.prototype.ngZone;
/**
* @type {?}
* @private
*/
OutSideEventHandlerDirective.prototype.el;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0c2lkZS1ldmVudC1oYW5kbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9wcC9DUEhfVHJhaW5pbmcvUHJvamVjdHMvbmd4LXRhc2tib2FyZC9wcm9qZWN0cy9uZ3gtdGFza2JvYXJkLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9vdXRzaWRlLWV2ZW50LWhhbmRsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs1RyxNQUFNLE9BQU8sNEJBQTRCOzs7OztJQUMxQyxZQUFvQixNQUFjLEVBQVUsRUFBYztRQUF0QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUMxQyxVQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ00sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFGTixDQUFDOzs7O0lBSXZELFdBQVc7UUFDakIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7OztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQjs7O1FBQUMsR0FBRyxFQUFFOztrQkFDOUIsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYTtZQUMzQyxJQUFJLENBQUMsT0FBTzs7OztZQUFHLE1BQU0sQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUEsQ0FBQztZQUdGLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUF0QkQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSx1QkFBdUI7YUFDL0I7Ozs7WUFKa0QsTUFBTTtZQUF2QyxVQUFVOzs7b0JBTzVCLEtBQUs7c0JBQ0wsTUFBTSxTQUFDLHFCQUFxQjs7OztJQUQ3Qiw2Q0FBZ0M7O0lBQ2hDLCtDQUFtRTs7Ozs7SUFDbkUsK0NBQXNDOzs7OztJQUgxQiw4Q0FBc0I7Ozs7O0lBQUUsMENBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHNlbGVjdG9yOiAnW291dFNpZGVFdmVudEhhbmRsZXJdJ1xyXG4gIH0pXHJcbiAgZXhwb3J0IGNsYXNzIE91dFNpZGVFdmVudEhhbmRsZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cclxuXHRASW5wdXQoKSBwdWJsaWMgZXZlbnQgPSAnY2xpY2snO1xyXG5cdEBPdXRwdXQoJ291dFNpZGVFdmVudEhhbmRsZXInKSBwdWJsaWMgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRwcml2YXRlIGhhbmRsZXI6IChldmVudDogYW55KSA9PiB2b2lkO1xyXG5cdHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMuZXZlbnQsIHRoaXMuaGFuZGxlcik7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgbmdPbkluaXQoKSB7XHJcblx0ICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcblx0XHRjb25zdCBuYXRpdmVFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG5cdFx0dGhpcy5oYW5kbGVyID0gJGV2ZW50ID0+IHtcclxuXHRcdCAgdGhpcy5lbWl0dGVyLmVtaXQoJGV2ZW50KTtcclxuXHRcdH07XHJcblxyXG5cclxuXHRcdG5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmV2ZW50LCB0aGlzLmhhbmRsZXIsIGZhbHNlKTtcclxuXHQgIH0pO1xyXG5cdH1cclxuICB9XHJcbiJdfQ==