@krobotech/v-form-builder
Version:
Vue Form Builder PRO MAX built from top of Vue. Super dynamic and flexible including Drag and Drop feature.
94 lines (73 loc) • 2.36 kB
JavaScript
/**
* Validation Rules of Vue-Form-Builder
* - desc: Validation Rule Info
* - needValue - boolean: Need additional value from user or not? True is yes
* - errorMessage: default error message, can be edit by the users
* -
*/
const VALIDATION_RULES = {
required: {
desc: "Field must have value (at least length must be 1)",
needValue: false,
errorMessage: "This field is required",
},
min: {
desc: "Minimum length of the value. For number field, it will be the value (not length)",
needValue: true,
valueInfo: "Number",
errorMessage: "Minimum value for this field is :min",
},
max: {
desc: "Maximum length of the value. For number field, it will be the value (not length)",
needValue: true,
valueInfo: "Number",
errorMessage: "Maximum value for this field is :max",
},
isEmail: {
desc: "Validate email address",
needValue: false,
errorMessage: "Wrong email address format",
},
regex: {
desc: "Validation the field by using your own Regex Rule",
needValue: true,
valueInfo: "Regex String|Flag - Eg: [0-9]+|g",
errorMessage: "This field value doesn't match with the rule",
},
sameAs: {
desc: "Check if the field has same value with another field",
needValue: true,
valueInfo: "The field name you want to check with",
errorMessage: "This field value doesn't as same as :sameAs",
},
customClosure: {
desc: "Invoke your own method to check your field",
needValue: true,
valueInfo: "Your method name",
errorMessage: "Custom validation failed.",
}
}
/**
* Add Validation Rule for the Control Validation
* @param ruleType
* @returns {{errorMessage: (string), type: (string)}}
*/
class ValidationRule {
/**
* Needed properties
*/
ruleType = ""
errorMessage = ""
additionalValue = ""
constructor(ruleType, customErrorMessage) {
this.ruleType = ruleType
if (ruleType) {
this.errorMessage = customErrorMessage || VALIDATION_RULES[ruleType].errorMessage || ""
}
}
}
export
{
VALIDATION_RULES,
ValidationRule
}