@lbgm/phone-input
Version:
An Angular phone input module
48 lines • 4.9 kB
JavaScript
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