%PDF- %PDF-
Direktori : /home/forge/takeaseat.eco-n-tech.co.uk/plugins/ |
Current File : //home/forge/takeaseat.eco-n-tech.co.uk/plugins/vee-validate.js |
import Vue from 'vue'; import { Validator, ValidationProvider, ValidationObserver, extend, localize } from 'vee-validate'; import PhoneNumber from 'awesome-phonenumber' import en from 'vee-validate/dist/locale/en.json'; import * as rules from 'vee-validate/dist/rules'; // install rules and localization Object.keys(rules).forEach(rule => { extend(rule, rules[rule]); }); extend('required', { ...rules.required, message: 'This field is required' }); extend('password', { params: ['target'], validate(value, { target }) { return value === target; }, message: 'Password confirmation does not match' }); extend('phone_number', { params: ['target'], validate(value) { return new Promise(resolve => { let phone = new PhoneNumber(value); resolve({ valid: phone.isValid() }) }) }, message: 'This is not a valid phone number.' }); extend('hourAfter', { params: ['target'], validate(value, { target }) { return new Promise(resolve => { const fromSplit = target.split(':'); const toSplit = value.split(':'); // Generate JS Date Objects for the values const fromDate = new Date(2000, 0, 1, fromSplit[0], fromSplit[1]); const toDate = new Date(2000, 0, 1, toSplit[0], toSplit[1]); // Get the diff in MS and convert to hours const minutesDiff = (toDate - fromDate) / (60*60*1000); resolve({ valid: minutesDiff >= 1 }) }) }, message: 'Availability must be at least 1 hour' }); localize('en', en); // Register it globally Vue.component('ValidationObserver', ValidationObserver); Vue.component('ValidationProvider', ValidationProvider);