UNPKG

@lbgm/phone-input

Version:

An Angular phone input module

48 lines 4.9 kB
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core'; import * as i0 from "@angular/core"; export class TypingDirective { constructor(el) { this.el = el; this.inputInterval = 100; this.run = new EventEmitter(); this.finish = new EventEmitter(); } onType(e) { const tping = () => { this.run.emit(); }; const tpfinished = () => { this.finish.emit(); }; if (e.type === "keyup") { if (e.key !== "Backspace") tping(); clearTimeout(this.inputTimer); this.inputTimer = setTimeout(tpfinished, this.inputInterval); } else if (e.type === "keydown") { clearTimeout(this.inputTimer); } } } TypingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TypingDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); TypingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TypingDirective, selector: "[inputTyping]", inputs: { inputInterval: "inputInterval" }, outputs: { run: "run", finish: "finish" }, host: { listeners: { "keydown": "onType($event)", "keyup": "onType($event)" } }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TypingDirective, decorators: [{ type: Directive, args: [{ selector: '[inputTyping]' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { inputInterval: [{ type: Input }], run: [{ type: Output }], finish: [{ type: Output }], onType: [{ type: HostListener, args: ["keydown", ['$event']] }, { type: HostListener, args: ["keyup", ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Bob25lLWlucHV0L3NyYy9saWIvdHlwaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLakcsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFBbUIsRUFBYTtRQUFiLE9BQUUsR0FBRixFQUFFLENBQVc7UUFMdkIsa0JBQWEsR0FBWSxHQUFHLENBQUM7UUFFNUIsUUFBRyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDL0IsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFUixDQUFDO0lBS3JDLE1BQU0sQ0FBQyxDQUFRO1FBQ2IsTUFBTSxLQUFLLEdBQUMsR0FBRSxFQUFFO1lBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBQyxHQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixJQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUcsT0FBTyxFQUNuQjtZQUNFLElBQUksQ0FBUyxDQUFDLEdBQUcsS0FBRyxXQUFXO2dCQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3pDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBQyxVQUFVLENBQUMsVUFBVSxFQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDthQUNJLElBQUcsQ0FBQyxDQUFDLElBQUksS0FBRyxTQUFTLEVBQzFCO1lBQ0UsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7OzZHQWhDVSxlQUFlO2lHQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFIM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7aUdBSVUsYUFBYTtzQkFBckIsS0FBSztnQkFFSSxHQUFHO3NCQUFaLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQU9QLE1BQU07c0JBRkwsWUFBWTt1QkFBQyxTQUFTLEVBQUMsQ0FBQyxRQUFRLENBQUM7O3NCQUNqQyxZQUFZO3VCQUFDLE9BQU8sRUFBQyxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2lucHV0VHlwaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgVHlwaW5nRGlyZWN0aXZlIHtcblxuICBpbnB1dFRpbWVyPzphbnk7XG4gIEBJbnB1dCgpIGlucHV0SW50ZXJ2YWw/OiBudW1iZXIgPSAxMDA7XG5cbiAgQE91dHB1dCgpIHJ1biA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGZpbmlzaCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6RWxlbWVudFJlZikgeyB9XG5cblxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXl1cFwiLFsnJGV2ZW50J10pXG4gIG9uVHlwZShlOiBFdmVudCk6dm9pZHtcbiAgICBjb25zdCB0cGluZz0oKT0+e1xuICAgICAgdGhpcy5ydW4uZW1pdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCB0cGZpbmlzaGVkPSgpPT57XG4gICAgICB0aGlzLmZpbmlzaC5lbWl0KCk7XG4gICAgfTtcblxuICAgIGlmKGUudHlwZT09PVwia2V5dXBcIilcbiAgICB7XG4gICAgICBpZigoZSBhcyBhbnkpLmtleSE9PVwiQmFja3NwYWNlXCIpIHRwaW5nKCk7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbnB1dFRpbWVyKTtcbiAgICAgIHRoaXMuaW5wdXRUaW1lcj1zZXRUaW1lb3V0KHRwZmluaXNoZWQsdGhpcy5pbnB1dEludGVydmFsKTtcbiAgICB9XG4gICAgZWxzZSBpZihlLnR5cGU9PT1cImtleWRvd25cIilcbiAgICB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbnB1dFRpbWVyKTtcbiAgICB9XG4gIH1cblxufVxuIl19