UNPKG

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
/** * @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==