/// module formsjs { export class MinMaxValidator extends AbstractValidator { /** * @inheritDoc * @override */ public validate(value:any, formData:any, validatableAttribute:ValidatableAttribute):Array> { var promises:Array> = []; var failureMessage:string; if (validatableAttribute.min) { if (typeof value === 'string' && value.length < validatableAttribute.min) { failureMessage = validatableAttribute.minFailureMessage || this.strings.minStringLengthValidationFailed; } else if (typeof value === 'number' && value < validatableAttribute.min) { failureMessage = validatableAttribute.minFailureMessage || this.strings.minimumNumberValidationFailed; } else { failureMessage = null; } if (failureMessage) { failureMessage = failureMessage .replace('${value}', value) .replace('${min}', validatableAttribute.min); promises.push(Promise.reject(failureMessage)); } } if (validatableAttribute.max) { if (typeof value === 'string' && value.length > validatableAttribute.max) { failureMessage = validatableAttribute.maxFailureMessage || this.strings.maxStringLengthValidationFailed; } else if (typeof value === 'number' && value > validatableAttribute.max) { failureMessage = validatableAttribute.maxFailureMessage || this.strings.maximumNumberValidationFailed; } else { failureMessage = null; } if (failureMessage) { failureMessage = failureMessage .replace('${value}', value) .replace('${max}', validatableAttribute.max); promises.push(Promise.reject(failureMessage)); } } return promises; } } }