UNPKG

phone-check-egypt

Version:

its a directive that gibe validation on mobile number using regex format .. # directive requirements :

142 lines (134 loc) 11.5 kB
import { Injectable, Component, Directive, ElementRef, HostListener, Input, NgModule, defineInjectable } from '@angular/core'; import '@angular/forms'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class PhoneCheckEgyptService { constructor() { } } PhoneCheckEgyptService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] }, ]; /** @nocollapse */ PhoneCheckEgyptService.ctorParameters = () => []; /** @nocollapse */ PhoneCheckEgyptService.ngInjectableDef = defineInjectable({ factory: function PhoneCheckEgyptService_Factory() { return new PhoneCheckEgyptService(); }, token: PhoneCheckEgyptService, providedIn: "root" }); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class PhoneCheckEgyptComponent { constructor() { } /** * @return {?} */ ngOnInit() { } } PhoneCheckEgyptComponent.decorators = [ { type: Component, args: [{ selector: 'enl-phone-check-egypt', template: ` <p> phone-check-egypt works! </p> `, styles: [] },] }, ]; /** @nocollapse */ PhoneCheckEgyptComponent.ctorParameters = () => []; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class OnlyNumberDirective { /** * @param {?} el */ constructor(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 {?} */ onKeyDown(event) { if (this.specialKeys.indexOf(event.key) !== -1) { return; } /** @type {?} */ let current = this.el.nativeElement.value; /** @type {?} */ let 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 = () => [ { type: ElementRef } ]; OnlyNumberDirective.propDecorators = { formData: [{ type: Input, args: ["formData",] }], onKeyDown: [{ type: HostListener, args: ["keydown", ["$event"],] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class PhoneCheckEgyptModule { } PhoneCheckEgyptModule.decorators = [ { type: NgModule, args: [{ imports: [], declarations: [PhoneCheckEgyptComponent, OnlyNumberDirective], exports: [PhoneCheckEgyptComponent] },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ export { PhoneCheckEgyptService, PhoneCheckEgyptComponent, PhoneCheckEgyptModule, OnlyNumberDirective }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtY2hlY2stZWd5cHQuanMubWFwIiwic291cmNlcyI6WyJuZzovL3Bob25lLWNoZWNrLWVneXB0L2xpYi9waG9uZS1jaGVjay1lZ3lwdC5zZXJ2aWNlLnRzIiwibmc6Ly9waG9uZS1jaGVjay1lZ3lwdC9saWIvcGhvbmUtY2hlY2stZWd5cHQuY29tcG9uZW50LnRzIiwibmc6Ly9waG9uZS1jaGVjay1lZ3lwdC9saWIvb25seS1udW1iZXIuZGlyZWN0aXZlLnRzIiwibmc6Ly9waG9uZS1jaGVjay1lZ3lwdC9saWIvcGhvbmUtY2hlY2stZWd5cHQubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVDaGVja0VneXB0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VubC1waG9uZS1jaGVjay1lZ3lwdCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+XG4gICAgICBwaG9uZS1jaGVjay1lZ3lwdCB3b3JrcyFcbiAgICA8L3A+XG4gIGAsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVDaGVja0VneXB0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbn1cbiIsImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbT25seU51bWJlcl1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgT25seU51bWJlckRpcmVjdGl2ZSB7XHJcbiAgQElucHV0KFwiZm9ybURhdGFcIilcclxuICBmb3JtRGF0YTogTmdGb3JtO1xyXG4gIC8vdGhpcyBpcyByZWdleCBmb3IgIGVneXB0IE1vYmxpZSBudW1iZXIgZXhhbXBsZSAwMTAvMDExLzAxMi8wMTUtMTExMTExMTFcclxuICByZWdleCA9IC9eWzBdezF9WzFdezF9WzF8Mnw1fDBdezF9WzAtOV17OH0kL2c7XHJcblxyXG4gIHByaXZhdGUgc3BlY2lhbEtleXM6IEFycmF5PHN0cmluZz4gPSBbXCJCYWNrc3BhY2VcIiwgXCJUYWJcIiwgXCJFbmRcIiwgXCJIb21lXCJdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbnNlcnRBZGphY2VudEhUTUwoXHJcbiAgICAgICAgXCJhZnRlcmVuZFwiLFxyXG4gICAgICAgICdcXG48ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPiogUGxlYXNlIEVudGVyIHZhbGlkIHBob25lIG51bWJlci48L2Rpdj4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5zcGVjaWFsS2V5cy5pbmRleE9mKGV2ZW50LmtleSkgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBjdXJyZW50OiBzdHJpbmcgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICBsZXQgbmV4dDogc3RyaW5nID0gY3VycmVudC5jb25jYXQoZXZlbnQua2V5KTtcclxuXHJcbiAgICBpZiAobmV4dCAhPSBcIlwiIHx8IG5leHQgIT0gdW5kZWZpbmVkIHx8IG5leHQgIT0gbnVsbCkge1xyXG4gICAgICBpZiAobmV4dCAmJiBuZXh0Lmxlbmd0aCA8IHRoaXMuZWwubmF0aXZlRWxlbWVudC5tYXgpIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImlzLWludmFsaWRcIik7XHJcbiAgICAgIH0gZWxzZSBpZiAobmV4dCAmJiBuZXh0Lmxlbmd0aCA9PSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubWF4KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVnZXgudGVzdChuZXh0KSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImlzLWludmFsaWRcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaXMtaW52YWxpZFwiKTtcclxuICAgICAgICAgIHRoaXMuZm9ybURhdGEuZm9ybS5jb250cm9sc1t0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZV0uc2V0RXJyb3JzKHtcclxuICAgICAgICAgICAgaW5jb3JyZWN0OiB0cnVlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAobmV4dCAmJiBuZXh0Lmxlbmd0aCA+IHRoaXMuZWwubmF0aXZlRWxlbWVudC5tYXgpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImlzLWludmFsaWRcIik7XHJcbiAgICAgIHRoaXMuZm9ybURhdGEuZm9ybS5jb250cm9sc1t0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubmFtZV0uc2V0RXJyb3JzKHtcclxuICAgICAgICBpbmNvcnJlY3Q6IHRydWVcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFBob25lQ2hlY2tFZ3lwdENvbXBvbmVudCB9IGZyb20gXCIuL3Bob25lLWNoZWNrLWVneXB0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgT25seU51bWJlckRpcmVjdGl2ZSB9IGZyb20gXCIuL29ubHktbnVtYmVyLmRpcmVjdGl2ZVwiO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbUGhvbmVDaGVja0VneXB0Q29tcG9uZW50ICxPbmx5TnVtYmVyRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1Bob25lQ2hlY2tFZ3lwdENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVDaGVja0VneXB0TW9kdWxlIHt9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0lBT0UsaUJBQWlCOzs7WUFMbEIsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7Ozs7Ozs7O0FDSkQ7SUFhRSxpQkFBaUI7Ozs7SUFFakIsUUFBUTtLQUNQOzs7WUFkRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFOzs7O0dBSVQ7Z0JBQ0QsTUFBTSxFQUFFLEVBQUU7YUFDWDs7Ozs7Ozs7O0FDVkQ7Ozs7SUFhRSxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTs7cUJBSjFCLHFDQUFxQzsyQkFFUixDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUd0RSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUNsQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FD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