import { Directive, HostListener, EventEmitter, Output } from '@angular/core'; import { KeySet, ForbiddenInput } from './classes'; @Directive({ selector: '[ang-no-digits]' }) export class NoDigitsDirective { keyset = new KeySet().digits(); @Output('ang-no-digits') forbiddenInput = new EventEmitter(); @HostListener('keydown', ['$event']) whileTyping(e: KeyboardEvent){ const forbidden = this.keyset.has(e.key); if(forbidden){ !e.repeat && this.forbiddenInput.emit(new ForbiddenInput(e)) return false; } } }