forForm() { let yupChain = yup .array() .compact() .ensure() .of(yup.string().trim()) .label(this.label); if (this.required) { yupChain = yupChain.required(); } if (this.min || this.min === 0) { yupChain = yupChain.min(this.min); } if (this.max) { yupChain = yupChain.max(this.max); } return yupChain; }
forFormCast() { let yupChain = yup .array() .compact() .ensure() .of(yup.string().trim()) .label(this.label) .transform((value, originalValue) => { if (!originalValue) { return originalValue; } if (Array.isArray(originalValue)) { return originalValue; } return [originalValue]; }); return yupChain; }
forFilter() { return yup .array() .of( yup .mixed() .nullable(true) .label(this.label) .test( 'is-date', i18n('validation.mixed.default'), (value) => { if (!value) { return true; } return moment(value, 'YYYY-MM-DD').isValid(); }, ) .transform( (value) => value ? moment(value).format('YYYY-MM-DD') : null, ), ) .label(this.label); }
forFormRules() { let yupValidator = yup .array() .label(this.label) .of( yup .string() .email(i18n('user.validations.email')) .label(i18n('user.fields.email')) .max(255) .required(), ); if (this.required) { yupValidator = yupValidator.required(); } const validator = (rule, value, callback) => { try { yupValidator.validateSync(value); callback(); } catch (error) { callback(error); } }; return [{ validator }]; }
forFilterCast() { let yupChain = yup .array() .compact() .ensure() .of(yup.string().trim()) .label(this.label) .transform((value, originalValue) => { if (!originalValue) { return originalValue; } if (Array.isArray(originalValue)) { return originalValue; } return [originalValue]; }); return yupChain; }