ngx-tags
Version:
To install this library, run:
59 lines • 3.74 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, HostListener, ElementRef, Output, EventEmitter, Input } from '@angular/core';
/* tslint:disable:directive-selector */
export class CloseMenuDirective {
/**
* @param {?} $elem
*/
constructor($elem) {
this.$elem = $elem;
this.whenClickedOut = new EventEmitter();
}
/**
* @param {?} e
* @return {?}
*/
onMouseUp(e) {
if (this.closeMenu) {
this.isOutside(e);
}
}
/**
* @param {?} e
* @return {?}
*/
isOutside(e) {
if (!this.$elem.nativeElement.contains(event.target) && this.$elem.nativeElement.style.display !== 'none') {
this.whenClickedOut.emit();
}
}
}
CloseMenuDirective.decorators = [
{ type: Directive, args: [{
selector: '[closeMenu]'
},] }
];
/** @nocollapse */
CloseMenuDirective.ctorParameters = () => [
{ type: ElementRef }
];
CloseMenuDirective.propDecorators = {
whenClickedOut: [{ type: Output }],
closeMenu: [{ type: Input }],
onMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
};
if (false) {
/** @type {?} */
CloseMenuDirective.prototype.whenClickedOut;
/** @type {?} */
CloseMenuDirective.prototype.closeMenu;
/**
* @type {?}
* @private
*/
CloseMenuDirective.prototype.$elem;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2UtbWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGFncy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2Nsb3NlLW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWpHLE1BQU0sT0FBTyxrQkFBa0I7Ozs7SUFNN0IsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUwzQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFLTCxDQUFDOzs7OztJQUhJLFNBQVMsQ0FBQyxDQUFRO1FBQzlELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FBRTtJQUM1QyxDQUFDOzs7OztJQUdELFNBQVMsQ0FBQyxDQUFRO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQ3pHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDOzs7WUFmRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7YUFDeEI7Ozs7WUFMaUMsVUFBVTs7OzZCQU96QyxNQUFNO3dCQUNOLEtBQUs7d0JBQ0wsWUFBWSxTQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDOzs7O0lBRjVDLDRDQUE4Qzs7SUFDOUMsdUNBQTRCOzs7OztJQUloQixtQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qIHRzbGludDpkaXNhYmxlOmRpcmVjdGl2ZS1zZWxlY3RvciAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nsb3NlTWVudV0nXG59KVxuZXhwb3J0IGNsYXNzIENsb3NlTWVudURpcmVjdGl2ZSB7XG4gIEBPdXRwdXQoKSB3aGVuQ2xpY2tlZE91dCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgY2xvc2VNZW51OiBib29sZWFuO1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJywgWyckZXZlbnQnXSkgb25Nb3VzZVVwKGU6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2xvc2VNZW51KSB7IHRoaXMuaXNPdXRzaWRlKGUpOyB9XG4gIH1cbiAgY29uc3RydWN0b3IocHJpdmF0ZSAkZWxlbTogRWxlbWVudFJlZikgeyB9XG5cbiAgaXNPdXRzaWRlKGU6IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLiRlbGVtLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiB0aGlzLiRlbGVtLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnKSB7XG4gICAgICB0aGlzLndoZW5DbGlja2VkT3V0LmVtaXQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==