%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/forge/takeaseat.eco-n-tech.co.uk/plugins/
Upload File :
Create Path :
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);

Zerion Mini Shell 1.0