@disane/ngx-taskboard
Version:
Yet another angular taskboard
80 lines • 4.9 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0c2lkZS1ldmVudC1oYW5kbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90cmF2aXMvYnVpbGQvRGlzYW5lODcvbmd4LXRhc2tib2FyZC9wcm9qZWN0cy9uZ3gtdGFza2JvYXJkLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9vdXRzaWRlLWV2ZW50LWhhbmRsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs1RyxNQUFNLE9BQU8sNEJBQTRCOzs7OztJQUMxQyxZQUFvQixNQUFjLEVBQVUsRUFBYztRQUF0QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUMxQyxVQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ00sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFGTixDQUFDOzs7O0lBSXZELFdBQVc7UUFDakIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7OztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQjs7O1FBQUMsR0FBRyxFQUFFOztrQkFDOUIsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYTtZQUMzQyxJQUFJLENBQUMsT0FBTzs7OztZQUFHLE1BQU0sQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUEsQ0FBQztZQUdGLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUF0QkQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSx1QkFBdUI7YUFDL0I7Ozs7WUFKa0QsTUFBTTtZQUF2QyxVQUFVOzs7b0JBTzVCLEtBQUs7c0JBQ0wsTUFBTSxTQUFDLHFCQUFxQjs7OztJQUQ3Qiw2Q0FBZ0M7O0lBQ2hDLCtDQUFtRTs7Ozs7SUFDbkUsK0NBQXNDOzs7OztJQUgxQiw4Q0FBc0I7Ozs7O0lBQUUsMENBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW291dFNpZGVFdmVudEhhbmRsZXJdJ1xuICB9KVxuICBleHBvcnQgY2xhc3MgT3V0U2lkZUV2ZW50SGFuZGxlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblx0QElucHV0KCkgcHVibGljIGV2ZW50ID0gJ2NsaWNrJztcblx0QE91dHB1dCgnb3V0U2lkZUV2ZW50SGFuZGxlcicpIHB1YmxpYyBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHRwcml2YXRlIGhhbmRsZXI6IChldmVudDogYW55KSA9PiB2b2lkO1xuXHRwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5ldmVudCwgdGhpcy5oYW5kbGVyKTtcblx0fVxuXG5cdHB1YmxpYyBuZ09uSW5pdCgpIHtcblx0ICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0Y29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcblx0XHR0aGlzLmhhbmRsZXIgPSAkZXZlbnQgPT4ge1xuXHRcdCAgdGhpcy5lbWl0dGVyLmVtaXQoJGV2ZW50KTtcblx0XHR9O1xuXG5cblx0XHRuYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ldmVudCwgdGhpcy5oYW5kbGVyLCBmYWxzZSk7XG5cdCAgfSk7XG5cdH1cbiAgfVxuIl19