UNPKG

nowjs-core

Version:

NowCanDo Javascript Core [nowjs-core] is a library written by TypeScript code maintains under Apache 2.0 licence

58 lines (57 loc) 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const index_1 = require("../index"); const index_2 = require("./index"); exports.VALIDATOR_PHONE_METADATA_KEY = Symbol('validation:validator:isPhone'); function isPhone(style = 'universal', errorMessage) { return (target, propertyKey, descriptor) => { const original = descriptor.value; Reflect.defineMetadata(exports.VALIDATOR_PHONE_METADATA_KEY, null, target, propertyKey); Reflect.defineMetadata(index_1.VALIDATOR_METADATA_KEY, new PhoneValidator(style, errorMessage), target, propertyKey); }; } exports.isPhone = isPhone; exports.PATTERN_PHONE_UNIVERSAL = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/gi; exports.PATTERN_PHONE_US = /((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}/gi; exports.PATTERN_PHONE_IR = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/gi; exports.PATTERN_PHONE_EN = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/gi; exports.PATTERN_PHONE_UE = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/gi; exports.PATTERN_PHONE_SA = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/gi; exports.PATTERN_PHONE_IQ = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/gi; exports.PATTERN_PHONE_AF = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/gi; class PhoneValidator extends index_2.PatternValidatorBase { constructor(style = 'universal', errorMessage = 'The value of ${DisplayName} must have phone pattern : ${Pattern} .') { super('Phone', /^/, errorMessage); this.style = style; switch (style.toLocaleLowerCase()) { case 'universal': this.setPattern(exports.PATTERN_PHONE_UNIVERSAL); break; case 'ir': this.setPattern(exports.PATTERN_PHONE_IR); break; case 'iq': this.setPattern(exports.PATTERN_PHONE_IQ); break; case 'sa': this.setPattern(exports.PATTERN_PHONE_EN); break; case 'af': this.setPattern(exports.PATTERN_PHONE_AF); break; case 'ue': this.setPattern(exports.PATTERN_PHONE_UE); break; case 'en': this.setPattern(exports.PATTERN_PHONE_EN); break; default: this.setPattern(exports.PATTERN_PHONE_UNIVERSAL); break; } } get Style() { return this.style; } } exports.PhoneValidator = PhoneValidator;