phone-check-egypt
Version:
its a directive that gibe validation on mobile number using regex format .. # directive requirements :
86 lines (85 loc) • 8.75 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Directive, ElementRef, HostListener, Input } from "@angular/core";
import { NgForm } from "@angular/forms";
var OnlyNumberDirective = /** @class */ (function () {
function OnlyNumberDirective(el) {
this.el = el;
//this is regex for egypt Moblie number example 010/011/012/015-11111111
this.regex = /^[0]{1}[1]{1}[1|2|5|0]{1}[0-9]{8}$/g;
this.specialKeys = ["Backspace", "Tab", "End", "Home"];
if (this.el.nativeElement.required) {
this.el.nativeElement.insertAdjacentHTML("afterend", '\n<div class="invalid-feedback">* Please Enter valid phone number.</div>');
}
}
/**
* @param {?} event
* @return {?}
*/
OnlyNumberDirective.prototype.onKeyDown = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (this.specialKeys.indexOf(event.key) !== -1) {
return;
}
/** @type {?} */
var current = this.el.nativeElement.value;
/** @type {?} */
var next = current.concat(event.key);
if (next != "" || next != undefined || next != null) {
if (next && next.length < this.el.nativeElement.max) {
this.el.nativeElement.classList.remove("is-invalid");
}
else if (next && next.length == this.el.nativeElement.max) {
if (this.regex.test(next) == true) {
this.el.nativeElement.classList.remove("is-invalid");
}
else {
this.el.nativeElement.classList.add("is-invalid");
this.formData.form.controls[this.el.nativeElement.name].setErrors({
incorrect: true
});
}
}
else if (next && next.length > this.el.nativeElement.max) {
event.preventDefault();
}
}
else {
this.el.nativeElement.classList.add("is-invalid");
this.formData.form.controls[this.el.nativeElement.name].setErrors({
incorrect: true
});
}
};
OnlyNumberDirective.decorators = [
{ type: Directive, args: [{
selector: "[OnlyNumber]"
},] },
];
/** @nocollapse */
OnlyNumberDirective.ctorParameters = function () { return [
{ type: ElementRef }
]; };
OnlyNumberDirective.propDecorators = {
formData: [{ type: Input, args: ["formData",] }],
onKeyDown: [{ type: HostListener, args: ["keydown", ["$event"],] }]
};
return OnlyNumberDirective;
}());
export { OnlyNumberDirective };
if (false) {
/** @type {?} */
OnlyNumberDirective.prototype.formData;
/** @type {?} */
OnlyNumberDirective.prototype.regex;
/** @type {?} */
OnlyNumberDirective.prototype.specialKeys;
/** @type {?} */
OnlyNumberDirective.prototype.el;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25seS1udW1iZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vcGhvbmUtY2hlY2stZWd5cHQvIiwic291cmNlcyI6WyJsaWIvb25seS1udW1iZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7SUFZdEMsNkJBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZOztxQkFKMUIscUNBQXFDOzJCQUVSLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBR3RFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQ3RDLFVBQVUsRUFDViwwRUFBMEUsQ0FDM0UsQ0FBQztTQUNIO0tBQ0Y7Ozs7O0lBR0QsdUNBQVM7Ozs7SUFEVCxVQUNVLEtBQW9CO1FBQzVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsTUFBTSxDQUFDO1NBQ1I7O1FBQ0QsSUFBSSxPQUFPLEdBQVcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDOztRQUNsRCxJQUFJLElBQUksR0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEQsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN0RDtZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNsQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUN0RDtnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO3dCQUNoRSxTQUFTLEVBQUUsSUFBSTtxQkFDaEIsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDM0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3hCO1NBQ0Y7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDaEUsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1NBQ0o7S0FDRjs7Z0JBakRGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7Ozs7Z0JBSm1CLFVBQVU7OzsyQkFNM0IsS0FBSyxTQUFDLFVBQVU7NEJBZ0JoQixZQUFZLFNBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDOzs4QkF0QnJDOztTQUthLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbT25seU51bWJlcl1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgT25seU51bWJlckRpcmVjdGl2ZSB7XHJcbiAgQElucHV0KFwiZm9ybURhdGFcIilcclxuICBmb3JtRGF0YTogTmdGb3JtO1xyXG4gIC8vdGhpcyBpcyByZWdleCBmb3IgIGVneXB0IE1vYmxpZSBudW1iZXIgZXhhbXBsZSAwMTAvMDExLzAxMi8wMTUtMTExMTExMTFcclxuICByZWdleCA9IC9eWzBdezF9WzFdezF9WzF8Mnw1fDBdezF9WzAtOV17OH0kL2c7XHJcblxyXG4gIHByaXZhdGUgc3BlY2lhbEtleXM6IEFycmF5PHN0cmluZz4gPSBbXCJCYWNrc3BhY2VcIiwgXCJUYWJcIiwgXCJFbmRcIiwgXCJIb21lXCJdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbnNlcnRBZGphY2VudEhUTUwoXHJcbiAgICAgICAgXCJhZnRlcmVuZFwiLFxyXG4gICAgICAgICdcXG48ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPiogUGxlYXNlIEVudGVyIHZhbGlkIHBob25lIG51bWJlci48L2Rpdj4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5zcGVjaWFsS2V5cy5pbmRleE9mKGV2ZW50LmtleSkgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBjdXJyZW50OiBzdHJpbmcgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICBsZXQgbmV4dDogc3RyaW5nID0gY3VycmVudC5jb25jYXQoZXZlbnQua2V5KTtcclxuXHJcbiAgICBpZiAobmV4dCAhPSBcIlwiIHx8IG5leHQgIT0gdW5kZWZpbmVkIHx8IG5leHQgIT0gbnVsbCkge1xyXG4gICAgICBpZiAobmV4dCAmJiBuZXh0Lmxlbmd0aCA8IHRoaXMuZWwubmF0aXZlRWxlbWVudC5tYXgpIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImlzLWludmFsaWRcIik7XHJcbiAgICAgIH0gZWxzZSBpZiAobmV4dCAmJiBuZXh0Lmxlbmd0aCA9PSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubWF4KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVnZXgudGVzdChuZXh0KSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImlzLWludmFsaWRcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaXMtaW52YWxpZFwiKTtcclxuICAgICAgICAgIHRoaXMuZm9ybURhdGEuZm9ybS5jb250cm9sc1t0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZV0uc2V0RXJyb3JzKHtcclxuICAgICAgICAgICAgaW5jb3JyZWN0OiB0cnVlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAobmV4dCAmJiBuZXh0Lmxlbmd0aCA+IHRoaXMuZWwubmF0aXZlRWxlbWVudC5tYXgpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImlzLWludmFsaWRcIik7XHJcbiAgICAgIHRoaXMuZm9ybURhdGEuZm9ybS5jb250cm9sc1t0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZV0uc2V0RXJyb3JzKHtcclxuICAgICAgICBpbmNvcnJlY3Q6IHRydWVcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==