diff --git a/.gitignore b/.gitignore index c601905..473c7e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,8 @@ .idea/ +*.iml typings/ node_modules/ dist/ .DS_Store aot/ -!example/dist \ No newline at end of file +!example/dist diff --git a/bundles/ng2-validation.umd.js.map b/bundles/ng2-validation.umd.js.map index f238462..dad4131 100644 --- a/bundles/ng2-validation.umd.js.map +++ b/bundles/ng2-validation.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"ng2-validation.umd.js","sources":["../src/base64/directive.ts","../src/util/lang.ts","../src/base64/validator.ts","../src/credit-card/directive.ts","../src/credit-card/validator.ts","../src/date/directive.ts","../src/date/validator.ts","../src/date-ios/directive.ts","../src/date-ios/validator.ts","../src/digits/directive.ts","../src/digits/validator.ts","../src/email/directive.ts","../src/email/validator.ts","../src/equal/directive.ts","../src/equal/validator.ts","../src/equal-to/directive.ts","../src/equal-to/validator.ts","../src/greater-than/directive.ts","../src/greater-than/validator.ts","../src/greater-than-equal/directive.ts","../src/greater-than-equal/validator.ts","../src/json/directive.ts","../src/json/validator.ts","../src/less-than/directive.ts","../src/less-than/validator.ts","../src/less-than-equal/directive.ts","../src/less-than-equal/validator.ts","../src/max/directive.ts","../src/max/validator.ts","../src/max-date/directive.ts","../src/max-date/validator.ts","../src/min/directive.ts","../src/min/validator.ts","../src/min-date/directive.ts","../src/min-date/validator.ts","../src/not-equal/directive.ts","../src/not-equal/validator.ts","../src/not-equal-to/directive.ts","../src/not-equal-to/validator.ts","../src/number/directive.ts","../src/number/validator.ts","../src/phone/directive.ts","../src/phone/validator.ts","../src/range/directive.ts","../src/range/validator.ts","../src/range-length/directive.ts","../src/range-length/validator.ts","../src/url/directive.ts","../src/url/validator.ts","../src/uuid/directive.ts","../src/uuid/validator.ts","../src/index.ts"],"sourcesContent":["import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { base64 } from './';\n\nconst BASE64_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => Base64Validator),\n multi: true\n};\n\n@Directive({\n selector: '[base64][formControlName],[base64][formControl],[base64][ngModel]',\n providers: [BASE64_VALIDATOR]\n})\nexport class Base64Validator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return base64(c);\n }\n}\n","export function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isDate(obj: any): boolean {\n return !/Invalid|NaN/.test(new Date(obj).toString());\n}","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const base64: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^(?:[A-Z0-9+\\/]{4})*(?:[A-Z0-9+\\/]{2}==|[A-Z0-9+\\/]{3}=|[A-Z0-9+\\/]{4})$/i.test(v) ? null : {'base64': true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { creditCard } from './';\n\nconst CREDIT_CARD_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CreditCardValidator),\n multi: true\n};\n\n@Directive({\n selector: '[creditCard][formControlName],[creditCard][formControl],[creditCard][ngModel]',\n providers: [CREDIT_CARD_VALIDATOR]\n})\nexport class CreditCardValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return creditCard(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const creditCard: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n\n let sanitized = v.replace(/[^0-9]+/g, '');\n\n // problem with chrome\n if (!(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/.test(sanitized))) {\n return {creditCard: true};\n }\n\n let sum = 0;\n let digit;\n let tmpNum;\n let shouldDouble;\n for (let i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, (i + 1));\n tmpNum = parseInt(digit, 10);\n if (shouldDouble) {\n tmpNum *= 2;\n if (tmpNum >= 10) {\n sum += ((tmpNum % 10) + 1);\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n shouldDouble = !shouldDouble;\n }\n\n if (Boolean((sum % 10) === 0 ? sanitized : false)) {\n return null;\n }\n\n return {creditCard: true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { date } from './';\n\nconst DATE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DateValidator),\n multi: true\n};\n\n@Directive({\n selector: '[date][formControlName],[date][formControl],[date][ngModel]',\n providers: [DATE_VALIDATOR]\n})\nexport class DateValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return date(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent, isDate } from '../util/lang';\n\nexport const date: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return isDate(v) ? null : {date: true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { dateISO } from './';\n\nconst DATE_ISO_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DateISOValidator),\n multi: true\n};\n\n@Directive({\n selector: '[dateISO][formControlName],[dateISO][formControl],[dateISO][ngModel]',\n providers: [DATE_ISO_VALIDATOR]\n})\nexport class DateISOValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return dateISO(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent, isDate } from '../util/lang';\n\nexport const dateISO: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test(v) ? null : {dateISO: true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { digits } from './';\n\nconst DIGITS_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DigitsValidator),\n multi: true\n};\n\n@Directive({\n selector: '[digits][formControlName],[digits][formControl],[digits][ngModel]',\n providers: [DIGITS_VALIDATOR]\n})\nexport class DigitsValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return digits(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const digits: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^\\d+$/.test(v) ? null : {digits: true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { email } from './index';\n\nconst EMAIL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EmailValidator),\n multi: true\n};\n\n@Directive({\n selector: '[email][formControlName],[email][formControl],[email][ngModel]',\n providers: [EMAIL_VALIDATOR]\n})\nexport class EmailValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return email(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const email: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(v) ? null : {'email': true};\n};\n","import { Directive, Input, forwardRef, OnInit, SimpleChanges, OnChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { equal } from './index';\n\nconst EQUAL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EqualValidator),\n multi: true\n};\n\n@Directive({\n selector: '[equal][formControlName],[equal][formControl],[equal][ngModel]',\n providers: [EQUAL_VALIDATOR]\n})\nexport class EqualValidator implements Validator, OnInit, OnChanges {\n @Input() equal: any;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = equal(this.equal);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'equal') {\n this.validator = equal(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const equal = (val: any): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: any = control.value;\n\n return val === v ? null : {equal: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit } from '@angular/core';\nimport { NG_VALIDATORS, Validator, FormControl, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { equalTo } from './';\n\nconst EQUAL_TO_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EqualToValidator),\n multi: true\n};\n\n@Directive({\n selector: '[equalTo][formControlName],[equalTo][formControl],[equalTo][ngModel]',\n providers: [EQUAL_TO_VALIDATOR]\n})\nexport class EqualToValidator implements Validator, OnInit {\n @Input() equalTo: FormControl;\n\n private validator: ValidatorFn;\n\n ngOnInit() {\n this.validator = equalTo(this.equalTo);\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n}","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport const equalTo = (equalControl: AbstractControl): ValidatorFn => {\n let subscribe: boolean = false;\n\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!subscribe) {\n subscribe = true;\n equalControl.valueChanges.subscribe(() => {\n control.updateValueAndValidity();\n });\n }\n\n let v: string = control.value;\n\n return equalControl.value === v ? null : {equalTo: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { gt } from './';\n\nconst GREATER_THAN_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GreaterThanValidator),\n multi: true\n};\n\n@Directive({\n selector: '[gt][formControlName],[gt][formControl],[gt][ngModel]',\n providers: [GREATER_THAN_VALIDATOR]\n})\nexport class GreaterThanValidator implements Validator, OnInit, OnChanges {\n @Input() gt: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = gt(this.gt);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'gt') {\n this.validator = gt(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const gt = (gt: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(gt)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v > +gt ? null : {gt: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { gte } from './';\n\nconst GREATER_THAN_EQUAL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GreaterThanEqualValidator),\n multi: true\n};\n\n@Directive({\n selector: '[gte][formControlName],[gte][formControl],[gte][ngModel]',\n providers: [GREATER_THAN_EQUAL_VALIDATOR]\n})\nexport class GreaterThanEqualValidator implements Validator, OnInit, OnChanges {\n @Input() gte: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = gte(this.gte);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'gte') {\n this.validator = gte(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const gte = (gte: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(gte)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v >= +gte ? null : {gte: true};\n };\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { json } from './';\n\nconst JSON_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => JSONValidator),\n multi: true\n};\n\n@Directive({\n selector: '[json][formControlName],[json][formControl],[json][ngModel]',\n providers: [JSON_VALIDATOR]\n})\nexport class JSONValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return json(c);\n }\n}","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const json: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n\n try {\n let obj = JSON.parse(v);\n\n if (Boolean(obj) && typeof obj === 'object') {\n return null;\n }\n } catch (e) {\n }\n return {json: true};\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { lt } from './';\n\nconst LESS_THAN_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LessThanValidator),\n multi: true\n};\n\n@Directive({\n selector: '[lt][formControlName],[lt][formControl],[lt][ngModel]',\n providers: [LESS_THAN_VALIDATOR]\n})\nexport class LessThanValidator implements Validator, OnInit, OnChanges {\n @Input() lt: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = lt(this.lt);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'lt') {\n this.validator = lt(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const lt = (lt: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(lt)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v < +lt ? null : {lt: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { lte } from './';\n\nconst LESS_THAN_EQUAL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LessThanEqualValidator),\n multi: true\n};\n\n@Directive({\n selector: '[lte][formControlName],[lte][formControl],[lte][ngModel]',\n providers: [LESS_THAN_EQUAL_VALIDATOR]\n})\nexport class LessThanEqualValidator implements Validator, OnInit, OnChanges {\n @Input() lte: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = lte(this.lte);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'lte') {\n this.validator = lte(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const lte = (lte: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(lte)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v <= +lte ? null : {lte: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { max } from './';\n\nconst MAX_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxValidator),\n multi: true\n};\n\n@Directive({\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\n providers: [MAX_VALIDATOR]\n})\nexport class MaxValidator implements Validator, OnInit, OnChanges {\n @Input() max: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = max(this.max);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'max') {\n this.validator = max(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const max = (max: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (!isPresent(max)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v <= +max ? null : {actualValue: v, requiredValue: +max, max: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { maxDate } from './';\n\nconst MAX_DATE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxDateValidator),\n multi: true\n};\n\n@Directive({\n selector: '[maxDate][formControlName],[maxDate][formControl],[maxDate][ngModel]',\n providers: [MAX_DATE_VALIDATOR]\n})\nexport class MaxDateValidator implements Validator, OnInit, OnChanges {\n @Input() maxDate;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = maxDate(this.maxDate);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'maxDate') {\n this.validator = maxDate(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent, isDate } from '../util/lang';\n\nexport const maxDate = (maxDate: any): ValidatorFn => {\n if (!isDate(maxDate) && !(maxDate instanceof Function)) {\n throw Error('maxDate value must be or return a formatted date');\n }\n\n return (control: AbstractControl): {[key: string]: any} => {\n if (isPresent(Validators.required(control))) return null;\n\n let d: Date = new Date(control.value);\n\n if (!isDate(d)) return {maxDate: true};\n if (maxDate instanceof Function) maxDate = maxDate();\n\n return d <= new Date(maxDate) ? null : {maxDate: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { min } from './';\n\nconst MIN_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinValidator),\n multi: true\n};\n\n@Directive({\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\n providers: [MIN_VALIDATOR]\n})\nexport class MinValidator implements Validator, OnInit, OnChanges {\n @Input() min: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = min(this.min);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'min') {\n this.validator = min(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const min = (min: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (!isPresent(min)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v >= +min ? null : {actualValue: v, requiredValue: +min, min: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { minDate } from './';\n\nconst MIN_DATE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinDateValidator),\n multi: true\n};\n\n@Directive({\n selector: '[minDate][formControlName],[minDate][formControl],[minDate][ngModel]',\n providers: [MIN_DATE_VALIDATOR]\n})\nexport class MinDateValidator implements Validator, OnInit, OnChanges {\n @Input() minDate;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = minDate(this.minDate);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'minDate') {\n this.validator = minDate(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent, isDate } from '../util/lang';\n\nexport const minDate = (minDate: any): ValidatorFn => {\n\n if (!isDate(minDate) && !(minDate instanceof Function)) {\n throw Error('minDate value must be or return a formatted date');\n }\n\n return (control: AbstractControl): {[key: string]: any} => {\n if (isPresent(Validators.required(control))) return null;\n\n let d: Date = new Date(control.value);\n\n if (!isDate(d)) return {minDate: true};\n if (minDate instanceof Function) minDate = minDate();\n\n return d >= new Date(minDate) ? null : {minDate: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, SimpleChanges, OnChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { notEqual } from './index';\n\nconst NOT_EQUAL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NotEqualValidator),\n multi: true\n};\n\n@Directive({\n selector: '[notEqual][formControlName],[notEqual][formControl],[notEqual][ngModel]',\n providers: [NOT_EQUAL_VALIDATOR]\n})\nexport class NotEqualValidator implements Validator, OnInit, OnChanges {\n @Input() notEqual: any;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = notEqual(this.notEqual);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'notEqual') {\n this.validator = notEqual(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const notEqual = (val: any): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: any = control.value;\n\n return val !== v ? null : {notEqual: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit } from '@angular/core';\nimport { NG_VALIDATORS, Validator, FormControl, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { notEqualTo } from './';\n\nconst NOT_EQUAL_TO_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NotEqualToValidator),\n multi: true\n};\n\n@Directive({\n selector: '[notEqualTo][formControlName],[notEqualTo][formControl],[notEqualTo][ngModel]',\n providers: [NOT_EQUAL_TO_VALIDATOR]\n})\nexport class NotEqualToValidator implements Validator, OnInit {\n @Input() notEqualTo: FormControl;\n\n private validator: ValidatorFn;\n\n ngOnInit() {\n this.validator = notEqualTo(this.notEqualTo);\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport const notEqualTo = (notEqualControl: AbstractControl): ValidatorFn => {\n let subscribe: boolean = false;\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!subscribe) {\n subscribe = true;\n notEqualControl.valueChanges.subscribe(() => {\n control.updateValueAndValidity();\n });\n }\n\n let v: string = control.value;\n\n return notEqualControl.value !== v ? null : {notEqualTo: true};\n };\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { number } from './';\n\nconst NUMBER_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberValidator),\n multi: true\n};\n\n@Directive({\n selector: '[number][formControlName],[number][formControl],[number][ngModel]',\n providers: [NUMBER_VALIDATOR]\n})\nexport class NumberValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return number(c);\n }\n}","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const number: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(v) ? null : {'number': true};\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { phone } from './';\n\nconst PHONE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PhoneValidator),\n multi: true\n};\n\n@Directive({\n selector: '[phone][formControlName],[phone][formControl],[phone][ngModel]',\n providers: [PHONE_VALIDATOR]\n})\nexport class PhoneValidator implements Validator, OnInit, OnChanges {\n @Input() phone: string;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = phone(this.phone);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'phone') {\n this.validator = phone(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\nimport { isValidNumber } from 'libphonenumber-js';\n\nimport { isPresent } from '../util/lang';\n\nexport const phone = (country: string): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: boolean } => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n\n return isValidNumber({phone: v, country}) ? null : {phone: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { range } from './';\n\nconst RANGE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangeValidator),\n multi: true\n};\n\n@Directive({\n selector: '[range][formControlName],[range][formControl],[range][ngModel]',\n providers: [RANGE_VALIDATOR]\n})\nexport class RangeValidator implements Validator, OnInit, OnChanges {\n @Input() range: [number];\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = range(this.range);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'range') {\n this.validator = range(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const range = (range: Array): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (!isPresent(range)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v >= range[0] && v <= range[1] ? null : {range: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { rangeLength } from './';\n\nconst RANGE_LENGTH_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangeLengthValidator),\n multi: true\n};\n\n@Directive({\n selector: '[rangeLength][formControlName],[rangeLength][formControl],[rangeLength][ngModel]',\n providers: [RANGE_LENGTH_VALIDATOR]\n})\nexport class RangeLengthValidator implements Validator, OnInit, OnChanges {\n @Input() rangeLength: [number];\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = rangeLength(this.rangeLength);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'rangeLength') {\n this.validator = rangeLength(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const rangeLength = (rangeLength: Array): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(rangeLength)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return v.length >= rangeLength[0] && v.length <= rangeLength[1] ? null : {rangeLength: true};\n };\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { url } from './';\n\nconst URL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => UrlValidator),\n multi: true\n};\n\n@Directive({\n selector: '[url][formControlName],[url][formControl],[url][ngModel]',\n providers: [URL_VALIDATOR]\n})\nexport class UrlValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return url(c);\n }\n}","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const url: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(v) ? null : {'url': true};\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { uuid } from './';\n\nconst UUID_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => UUIDValidator),\n multi: true\n};\n\n@Directive({\n selector: '[uuid][formControlName],[uuid][formControl],[uuid][ngModel]',\n providers: [UUID_VALIDATOR]\n})\nexport class UUIDValidator implements Validator, OnInit, OnChanges {\n @Input() uuid;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = uuid(this.uuid);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'uuid') {\n this.validator = uuid(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nconst uuids = {\n '3': /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n '4': /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n '5': /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 'all': /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\n\nexport const uuid = (version?: string): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n let pattern = uuids[version] || uuids.all;\n\n return (new RegExp(pattern)).test(v) ? null : {uuid: true};\n };\n};\n","import { NgModule } from '@angular/core';\n\nimport { base64, Base64Validator } from './base64';\nimport { creditCard, CreditCardValidator } from './credit-card';\nimport { date, DateValidator } from './date';\nimport { dateISO, DateISOValidator } from './date-ios';\nimport { digits, DigitsValidator } from './digits';\nimport { email, EmailValidator } from './email';\nimport { equal, EqualValidator } from './equal';\nimport { equalTo, EqualToValidator } from './equal-to';\nimport { gt, GreaterThanValidator } from './greater-than';\nimport { gte, GreaterThanEqualValidator } from './greater-than-equal';\nimport { json, JSONValidator } from './json';\nimport { lt, LessThanValidator } from './less-than';\nimport { lte, LessThanEqualValidator } from './less-than-equal';\nimport { max, MaxValidator } from './max';\nimport { maxDate, MaxDateValidator } from './max-date';\nimport { min, MinValidator } from './min';\nimport { minDate, MinDateValidator } from './min-date';\nimport { notEqual, NotEqualValidator } from './not-equal';\nimport { notEqualTo, NotEqualToValidator } from './not-equal-to';\nimport { number, NumberValidator } from './number';\nimport { phone, PhoneValidator } from './phone';\nimport { range, RangeValidator } from './range';\nimport { rangeLength, RangeLengthValidator } from './range-length';\nimport { url, UrlValidator } from './url';\nimport { uuid, UUIDValidator } from './uuid';\n\nexport const CustomValidators: any = {\n base64,\n creditCard,\n date,\n dateISO,\n digits,\n email,\n equal,\n equalTo,\n gt,\n gte,\n json,\n lt,\n lte,\n max,\n maxDate,\n min,\n minDate,\n notEqual,\n notEqualTo,\n number,\n phone,\n range,\n rangeLength,\n url,\n uuid\n};\n\nconst CUSTOM_FORM_DIRECTIVES = [\n Base64Validator,\n CreditCardValidator,\n DateValidator,\n DateISOValidator,\n DigitsValidator,\n EmailValidator,\n EqualValidator,\n EqualToValidator,\n GreaterThanValidator,\n GreaterThanEqualValidator,\n JSONValidator,\n LessThanValidator,\n LessThanEqualValidator,\n MaxValidator,\n MaxDateValidator,\n MinValidator,\n MinDateValidator,\n NotEqualValidator,\n NotEqualToValidator,\n NumberValidator,\n PhoneValidator,\n RangeValidator,\n RangeLengthValidator,\n UrlValidator,\n UUIDValidator\n];\n\n@NgModule({\n declarations: [CUSTOM_FORM_DIRECTIVES],\n exports: [CUSTOM_FORM_DIRECTIVES]\n})\nexport class CustomFormsModule {\n}\n"],"names":["NG_VALIDATORS","forwardRef","Base64Validator","Directive","Validators","CreditCardValidator","DateValidator","DateISOValidator","DigitsValidator","EmailValidator","EqualValidator","Input","EqualToValidator","FormControl","GreaterThanValidator","GreaterThanEqualValidator","JSONValidator","LessThanValidator","LessThanEqualValidator","MaxValidator","MaxDateValidator","MinValidator","MinDateValidator","NotEqualValidator","NotEqualToValidator","NumberValidator","PhoneValidator","isValidNumber","RangeValidator","RangeLengthValidator","UrlValidator","UUIDValidator","CustomFormsModule","NgModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ng2-validation.umd.js","sources":["../src/base64/directive.ts","../src/util/lang.ts","../src/base64/validator.ts","../src/credit-card/directive.ts","../src/credit-card/validator.ts","../src/date/directive.ts","../src/date/validator.ts","../src/date-ios/directive.ts","../src/date-ios/validator.ts","../src/digits/directive.ts","../src/digits/validator.ts","../src/email/directive.ts","../src/email/validator.ts","../src/equal/directive.ts","../src/equal/validator.ts","../src/equal-to/directive.ts","../src/equal-to/validator.ts","../src/greater-than/directive.ts","../src/greater-than/validator.ts","../src/greater-than-equal/directive.ts","../src/greater-than-equal/validator.ts","../src/json/directive.ts","../src/json/validator.ts","../src/less-than/directive.ts","../src/less-than/validator.ts","../src/less-than-equal/directive.ts","../src/less-than-equal/validator.ts","../src/max/directive.ts","../src/max/validator.ts","../src/max-date/directive.ts","../src/max-date/validator.ts","../src/min/directive.ts","../src/min/validator.ts","../src/min-date/directive.ts","../src/min-date/validator.ts","../src/not-equal/directive.ts","../src/not-equal/validator.ts","../src/not-equal-to/directive.ts","../src/not-equal-to/validator.ts","../src/number/directive.ts","../src/number/validator.ts","../src/phone/directive.ts","../src/phone/validator.ts","../src/range/directive.ts","../src/range/validator.ts","../src/range-length/directive.ts","../src/range-length/validator.ts","../src/url/directive.ts","../src/url/validator.ts","../src/uuid/directive.ts","../src/uuid/validator.ts","../src/index.ts"],"sourcesContent":["import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { base64 } from './';\n\nconst BASE64_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => Base64Validator),\n multi: true\n};\n\n@Directive({\n selector: '[base64][formControlName],[base64][formControl],[base64][ngModel]',\n providers: [BASE64_VALIDATOR]\n})\nexport class Base64Validator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return base64(c);\n }\n}\n","export function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isDate(obj: any): boolean {\n return !/Invalid|NaN/.test(new Date(obj).toString());\n}","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const base64: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^(?:[A-Z0-9+\\/]{4})*(?:[A-Z0-9+\\/]{2}==|[A-Z0-9+\\/]{3}=|[A-Z0-9+\\/]{4})$/i.test(v) ? null : {'base64': true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { creditCard } from './';\n\nconst CREDIT_CARD_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CreditCardValidator),\n multi: true\n};\n\n@Directive({\n selector: '[creditCard][formControlName],[creditCard][formControl],[creditCard][ngModel]',\n providers: [CREDIT_CARD_VALIDATOR]\n})\nexport class CreditCardValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return creditCard(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const creditCard: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n\n let sanitized = v.replace(/[^0-9]+/g, '');\n\n // problem with chrome\n if (!(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/.test(sanitized))) {\n return {creditCard: true};\n }\n\n let sum = 0;\n let digit;\n let tmpNum;\n let shouldDouble;\n for (let i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, (i + 1));\n tmpNum = parseInt(digit, 10);\n if (shouldDouble) {\n tmpNum *= 2;\n if (tmpNum >= 10) {\n sum += ((tmpNum % 10) + 1);\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n shouldDouble = !shouldDouble;\n }\n\n if (Boolean((sum % 10) === 0 ? sanitized : false)) {\n return null;\n }\n\n return {creditCard: true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { date } from './';\n\nconst DATE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DateValidator),\n multi: true\n};\n\n@Directive({\n selector: '[date][formControlName],[date][formControl],[date][ngModel]',\n providers: [DATE_VALIDATOR]\n})\nexport class DateValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return date(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent, isDate } from '../util/lang';\n\nexport const date: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return isDate(v) ? null : {date: true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { dateISO } from './';\n\nconst DATE_ISO_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DateISOValidator),\n multi: true\n};\n\n@Directive({\n selector: '[dateISO][formControlName],[dateISO][formControl],[dateISO][ngModel]',\n providers: [DATE_ISO_VALIDATOR]\n})\nexport class DateISOValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return dateISO(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent, isDate } from '../util/lang';\n\nexport const dateISO: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test(v) ? null : {dateISO: true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { digits } from './';\n\nconst DIGITS_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DigitsValidator),\n multi: true\n};\n\n@Directive({\n selector: '[digits][formControlName],[digits][formControl],[digits][ngModel]',\n providers: [DIGITS_VALIDATOR]\n})\nexport class DigitsValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return digits(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const digits: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^\\d+$/.test(v) ? null : {digits: true};\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { email } from './index';\n\nconst EMAIL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EmailValidator),\n multi: true\n};\n\n@Directive({\n selector: '[email][formControlName],[email][formControl],[email][ngModel]',\n providers: [EMAIL_VALIDATOR]\n})\nexport class EmailValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return email(c);\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const email: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(v) ? null : {'email': true};\n};\n","import { Directive, Input, forwardRef, OnInit, SimpleChanges, OnChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { equal } from './index';\n\nconst EQUAL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EqualValidator),\n multi: true\n};\n\n@Directive({\n selector: '[equal][formControlName],[equal][formControl],[equal][ngModel]',\n providers: [EQUAL_VALIDATOR]\n})\nexport class EqualValidator implements Validator, OnInit, OnChanges {\n @Input() equal: any;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = equal(this.equal);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'equal') {\n this.validator = equal(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const equal = (val: any): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: any = control.value;\n\n return val === v ? null : {equal: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit } from '@angular/core';\nimport { NG_VALIDATORS, Validator, FormControl, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { equalTo } from './';\n\nconst EQUAL_TO_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EqualToValidator),\n multi: true\n};\n\n@Directive({\n selector: '[equalTo][formControlName],[equalTo][formControl],[equalTo][ngModel]',\n providers: [EQUAL_TO_VALIDATOR]\n})\nexport class EqualToValidator implements Validator, OnInit {\n @Input() equalTo: FormControl;\n\n private validator: ValidatorFn;\n\n ngOnInit() {\n this.validator = equalTo(this.equalTo);\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n}","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport const equalTo = (equalControl: AbstractControl): ValidatorFn => {\n let subscribe: boolean = false;\n\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!subscribe) {\n subscribe = true;\n equalControl.valueChanges.subscribe(() => {\n control.updateValueAndValidity();\n });\n }\n\n let v: string = control.value;\n\n return equalControl.value === v ? null : {equalTo: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { gt } from './';\n\nconst GREATER_THAN_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GreaterThanValidator),\n multi: true\n};\n\n@Directive({\n selector: '[gt][formControlName],[gt][formControl],[gt][ngModel]',\n providers: [GREATER_THAN_VALIDATOR]\n})\nexport class GreaterThanValidator implements Validator, OnInit, OnChanges {\n @Input() gt: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = gt(this.gt);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'gt') {\n this.validator = gt(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const gt = (gt: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(gt)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v > +gt ? null : {gt: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { gte } from './';\n\nconst GREATER_THAN_EQUAL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GreaterThanEqualValidator),\n multi: true\n};\n\n@Directive({\n selector: '[gte][formControlName],[gte][formControl],[gte][ngModel]',\n providers: [GREATER_THAN_EQUAL_VALIDATOR]\n})\nexport class GreaterThanEqualValidator implements Validator, OnInit, OnChanges {\n @Input() gte: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = gte(this.gte);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'gte') {\n this.validator = gte(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const gte = (gte: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(gte)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v >= +gte ? null : {gte: true};\n };\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { json } from './';\n\nconst JSON_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => JSONValidator),\n multi: true\n};\n\n@Directive({\n selector: '[json][formControlName],[json][formControl],[json][ngModel]',\n providers: [JSON_VALIDATOR]\n})\nexport class JSONValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return json(c);\n }\n}","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const json: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n\n try {\n let obj = JSON.parse(v);\n\n if (Boolean(obj) && typeof obj === 'object') {\n return null;\n }\n } catch (e) {\n }\n return {json: true};\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { lt } from './';\n\nconst LESS_THAN_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LessThanValidator),\n multi: true\n};\n\n@Directive({\n selector: '[lt][formControlName],[lt][formControl],[lt][ngModel]',\n providers: [LESS_THAN_VALIDATOR]\n})\nexport class LessThanValidator implements Validator, OnInit, OnChanges {\n @Input() lt: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = lt(this.lt);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'lt') {\n this.validator = lt(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const lt = (lt: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(lt)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v < +lt ? null : {lt: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { lte } from './';\n\nconst LESS_THAN_EQUAL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LessThanEqualValidator),\n multi: true\n};\n\n@Directive({\n selector: '[lte][formControlName],[lte][formControl],[lte][ngModel]',\n providers: [LESS_THAN_EQUAL_VALIDATOR]\n})\nexport class LessThanEqualValidator implements Validator, OnInit, OnChanges {\n @Input() lte: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = lte(this.lte);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'lte') {\n this.validator = lte(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const lte = (lte: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(lte)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v <= +lte ? null : {lte: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { max } from './';\n\nconst MAX_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxValidator),\n multi: true\n};\n\n@Directive({\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\n providers: [MAX_VALIDATOR]\n})\nexport class MaxValidator implements Validator, OnInit, OnChanges {\n @Input() max: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = max(this.max);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'max') {\n this.validator = max(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const max = (max: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (!isPresent(max)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v <= +max ? null : {actualValue: v, requiredValue: +max, max: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { maxDate } from './';\n\nconst MAX_DATE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxDateValidator),\n multi: true\n};\n\n@Directive({\n selector: '[maxDate][formControlName],[maxDate][formControl],[maxDate][ngModel]',\n providers: [MAX_DATE_VALIDATOR]\n})\nexport class MaxDateValidator implements Validator, OnInit, OnChanges {\n @Input() maxDate;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = maxDate(this.maxDate);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'maxDate') {\n this.validator = maxDate(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent, isDate } from '../util/lang';\n\nexport const maxDate = (maxDate: any): ValidatorFn => {\n if (!isDate(maxDate) && !(maxDate instanceof Function)) {\n throw Error('maxDate value must be or return a formatted date');\n }\n\n return (control: AbstractControl): {[key: string]: any} => {\n if (isPresent(Validators.required(control))) return null;\n\n let d: Date = new Date(control.value);\n\n if (!isDate(d)) return {maxDate: true};\n if (maxDate instanceof Function) maxDate = maxDate();\n\n return d <= new Date(maxDate) ? null : {maxDate: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { min } from './';\n\nconst MIN_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinValidator),\n multi: true\n};\n\n@Directive({\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\n providers: [MIN_VALIDATOR]\n})\nexport class MinValidator implements Validator, OnInit, OnChanges {\n @Input() min: number;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = min(this.min);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'min') {\n this.validator = min(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const min = (min: number): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (!isPresent(min)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v >= +min ? null : {actualValue: v, requiredValue: +min, min: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { minDate } from './';\n\nconst MIN_DATE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinDateValidator),\n multi: true\n};\n\n@Directive({\n selector: '[minDate][formControlName],[minDate][formControl],[minDate][ngModel]',\n providers: [MIN_DATE_VALIDATOR]\n})\nexport class MinDateValidator implements Validator, OnInit, OnChanges {\n @Input() minDate;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = minDate(this.minDate);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'minDate') {\n this.validator = minDate(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent, isDate } from '../util/lang';\n\nexport const minDate = (minDate: any): ValidatorFn => {\n\n if (!isDate(minDate) && !(minDate instanceof Function)) {\n throw Error('minDate value must be or return a formatted date');\n }\n\n return (control: AbstractControl): {[key: string]: any} => {\n if (isPresent(Validators.required(control))) return null;\n\n let d: Date = new Date(control.value);\n\n if (!isDate(d)) return {minDate: true};\n if (minDate instanceof Function) minDate = minDate();\n\n return d >= new Date(minDate) ? null : {minDate: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, SimpleChanges, OnChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { notEqual } from './index';\n\nconst NOT_EQUAL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NotEqualValidator),\n multi: true\n};\n\n@Directive({\n selector: '[notEqual][formControlName],[notEqual][formControl],[notEqual][ngModel]',\n providers: [NOT_EQUAL_VALIDATOR]\n})\nexport class NotEqualValidator implements Validator, OnInit, OnChanges {\n @Input() notEqual: any;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = notEqual(this.notEqual);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'notEqual') {\n this.validator = notEqual(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const notEqual = (val: any): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: any = control.value;\n\n return val !== v ? null : {notEqual: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit } from '@angular/core';\nimport { NG_VALIDATORS, Validator, FormControl, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { notEqualTo } from './';\n\nconst NOT_EQUAL_TO_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NotEqualToValidator),\n multi: true\n};\n\n@Directive({\n selector: '[notEqualTo][formControlName],[notEqualTo][formControl],[notEqualTo][ngModel]',\n providers: [NOT_EQUAL_TO_VALIDATOR]\n})\nexport class NotEqualToValidator implements Validator, OnInit {\n @Input() notEqualTo: FormControl;\n\n private validator: ValidatorFn;\n\n ngOnInit() {\n this.validator = notEqualTo(this.notEqualTo);\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport const notEqualTo = (notEqualControl: AbstractControl): ValidatorFn => {\n let subscribe: boolean = false;\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!subscribe) {\n subscribe = true;\n notEqualControl.valueChanges.subscribe(() => {\n control.updateValueAndValidity();\n });\n }\n\n let v: string = control.value;\n\n return notEqualControl.value !== v ? null : {notEqualTo: true};\n };\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { number } from './';\n\nconst NUMBER_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NumberValidator),\n multi: true\n};\n\n@Directive({\n selector: '[number][formControlName],[number][formControl],[number][ngModel]',\n providers: [NUMBER_VALIDATOR]\n})\nexport class NumberValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return number(c);\n }\n}","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const number: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(v) ? null : {'number': true};\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { phone } from './';\n\nconst PHONE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PhoneValidator),\n multi: true\n};\n\n@Directive({\n selector: '[phone][formControlName],[phone][formControl],[phone][ngModel]',\n providers: [PHONE_VALIDATOR]\n})\nexport class PhoneValidator implements Validator, OnInit, OnChanges {\n @Input() phone: string;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = phone(this.phone);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'phone') {\n this.validator = phone(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\nimport { isValidNumber } from 'libphonenumber-js';\n\nimport { isPresent } from '../util/lang';\n\nexport const phone = (country: string): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: boolean } => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n\n return isValidNumber({phone: v, country}) ? null : {phone: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { range } from './';\n\nconst RANGE_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangeValidator),\n multi: true\n};\n\n@Directive({\n selector: '[range][formControlName],[range][formControl],[range][ngModel]',\n providers: [RANGE_VALIDATOR]\n})\nexport class RangeValidator implements Validator, OnInit, OnChanges {\n @Input() range: [number];\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = range(this.range);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'range') {\n this.validator = range(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const range = (range: Array): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (!isPresent(range)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: number = +control.value;\n return v >= range[0] && v <= range[1] ? null : {range: true};\n };\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { rangeLength } from './';\n\nconst RANGE_LENGTH_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangeLengthValidator),\n multi: true\n};\n\n@Directive({\n selector: '[rangeLength][formControlName],[rangeLength][formControl],[rangeLength][ngModel]',\n providers: [RANGE_LENGTH_VALIDATOR]\n})\nexport class RangeLengthValidator implements Validator, OnInit, OnChanges {\n @Input() rangeLength: [number];\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = rangeLength(this.rangeLength);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'rangeLength') {\n this.validator = rangeLength(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const rangeLength = (rangeLength: Array): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: boolean} => {\n if (!isPresent(rangeLength)) return null;\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return v.length >= rangeLength[0] && v.length <= rangeLength[1] ? null : {rangeLength: true};\n };\n};\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\n\nimport { url } from './';\n\nconst URL_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => UrlValidator),\n multi: true\n};\n\n@Directive({\n selector: '[url][formControlName],[url][formControl],[url][ngModel]',\n providers: [URL_VALIDATOR]\n})\nexport class UrlValidator implements Validator {\n validate(c: AbstractControl): {[key: string]: any} {\n return url(c);\n }\n}","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nexport const url: ValidatorFn = (control: AbstractControl): {[key: string]: boolean} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(v) ? null : {'url': true};\n};\n","import { Directive, Input, forwardRef, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { uuid } from './';\n\nconst UUID_VALIDATOR: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => UUIDValidator),\n multi: true\n};\n\n@Directive({\n selector: '[uuid][formControlName],[uuid][formControl],[uuid][ngModel]',\n providers: [UUID_VALIDATOR]\n})\nexport class UUIDValidator implements Validator, OnInit, OnChanges {\n @Input() uuid;\n\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnInit() {\n this.validator = uuid(this.uuid);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n for (let key in changes) {\n if (key === 'uuid') {\n this.validator = uuid(changes[key].currentValue);\n if (this.onChange) this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): {[key: string]: any} {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn } from '@angular/forms';\n\nimport { isPresent } from '../util/lang';\n\nconst uuids = {\n '3': /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n '4': /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n '5': /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 'all': /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\n\nexport const uuid = (version?: string): ValidatorFn => {\n return (control: AbstractControl): {[key: string]: any} => {\n if (isPresent(Validators.required(control))) return null;\n\n let v: string = control.value;\n let pattern = uuids[version] || uuids.all;\n\n return (new RegExp(pattern)).test(v) ? null : {uuid: true};\n };\n};\n","import { NgModule } from '@angular/core';\n\n// the following is required by \"declaration: true\" in tsconfig.json\n// otherwise the compiler does not know the dependencies\n// see https://github.com/Microsoft/TypeScript/issues/5711#issuecomment-157793294\nimport { ValidatorFn, AbstractControl } from '@angular/forms';\n\nimport { base64, Base64Validator } from './base64';\nimport { creditCard, CreditCardValidator } from './credit-card';\nimport { date, DateValidator } from './date';\nimport { dateISO, DateISOValidator } from './date-ios';\nimport { digits, DigitsValidator } from './digits';\nimport { email, EmailValidator } from './email';\nimport { equal, EqualValidator } from './equal';\nimport { equalTo, EqualToValidator } from './equal-to';\nimport { gt, GreaterThanValidator } from './greater-than';\nimport { gte, GreaterThanEqualValidator } from './greater-than-equal';\nimport { json, JSONValidator } from './json';\nimport { lt, LessThanValidator } from './less-than';\nimport { lte, LessThanEqualValidator } from './less-than-equal';\nimport { max, MaxValidator } from './max';\nimport { maxDate, MaxDateValidator } from './max-date';\nimport { min, MinValidator } from './min';\nimport { minDate, MinDateValidator } from './min-date';\nimport { notEqual, NotEqualValidator } from './not-equal';\nimport { notEqualTo, NotEqualToValidator } from './not-equal-to';\nimport { number, NumberValidator } from './number';\nimport { phone, PhoneValidator } from './phone';\nimport { range, RangeValidator } from './range';\nimport { rangeLength, RangeLengthValidator } from './range-length';\nimport { url, UrlValidator } from './url';\nimport { uuid, UUIDValidator } from './uuid';\n\nexport const CustomValidators = {\n base64,\n creditCard,\n date,\n dateISO,\n digits,\n email,\n equal,\n equalTo,\n gt,\n gte,\n json,\n lt,\n lte,\n max,\n maxDate,\n min,\n minDate,\n notEqual,\n notEqualTo,\n number,\n phone,\n range,\n rangeLength,\n url,\n uuid\n};\n\nconst CUSTOM_FORM_DIRECTIVES = [\n Base64Validator,\n CreditCardValidator,\n DateValidator,\n DateISOValidator,\n DigitsValidator,\n EmailValidator,\n EqualValidator,\n EqualToValidator,\n GreaterThanValidator,\n GreaterThanEqualValidator,\n JSONValidator,\n LessThanValidator,\n LessThanEqualValidator,\n MaxValidator,\n MaxDateValidator,\n MinValidator,\n MinDateValidator,\n NotEqualValidator,\n NotEqualToValidator,\n NumberValidator,\n PhoneValidator,\n RangeValidator,\n RangeLengthValidator,\n UrlValidator,\n UUIDValidator\n];\n\n@NgModule({\n declarations: [CUSTOM_FORM_DIRECTIVES],\n exports: [CUSTOM_FORM_DIRECTIVES]\n})\nexport class CustomFormsModule {\n}\n"],"names":["NG_VALIDATORS","forwardRef","Base64Validator","Directive","Validators","CreditCardValidator","DateValidator","DateISOValidator","DigitsValidator","EmailValidator","EqualValidator","Input","EqualToValidator","FormControl","GreaterThanValidator","GreaterThanEqualValidator","JSONValidator","LessThanValidator","LessThanEqualValidator","MaxValidator","MaxDateValidator","MinValidator","MinDateValidator","NotEqualValidator","NotEqualToValidator","NumberValidator","PhoneValidator","isValidNumber","RangeValidator","RangeLengthValidator","UrlValidator","UUIDValidator","CustomFormsModule","NgModule"],"mappings":"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"} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index d088187..6b3221a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,10 @@ import { NgModule } from '@angular/core'; +// the following is required by "declaration: true" in tsconfig.json +// otherwise the compiler does not know the dependencies +// see https://github.com/Microsoft/TypeScript/issues/5711#issuecomment-157793294 +import { ValidatorFn, AbstractControl } from '@angular/forms'; + import { base64, Base64Validator } from './base64'; import { creditCard, CreditCardValidator } from './credit-card'; import { date, DateValidator } from './date'; @@ -26,7 +31,7 @@ import { rangeLength, RangeLengthValidator } from './range-length'; import { url, UrlValidator } from './url'; import { uuid, UUIDValidator } from './uuid'; -export const CustomValidators: any = { +export const CustomValidators = { base64, creditCard, date,