import { extend } from '../vue';

// @vue/component
export var formValidityMixin = extend({
  computed: {
    validity: {
      // Expose validity property
      cache: false,
      /* istanbul ignore next */get: function get() {
        return this.$refs.input.validity;
      }
    },
    validationMessage: {
      // Expose validationMessage property
      cache: false,
      /* istanbul ignore next */get: function get() {
        return this.$refs.input.validationMessage;
      }
    },
    willValidate: {
      // Expose willValidate property
      cache: false,
      /* istanbul ignore next */get: function get() {
        return this.$refs.input.willValidate;
      }
    }
  },
  methods: {
    /* istanbul ignore next */setCustomValidity: function setCustomValidity() {
      var _this$$refs$input;
      // For external handler that may want a setCustomValidity(...) method
      return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);
    },
    /* istanbul ignore next */checkValidity: function checkValidity() {
      var _this$$refs$input2;
      // For external handler that may want a checkValidity(...) method
      return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);
    },
    /* istanbul ignore next */reportValidity: function reportValidity() {
      var _this$$refs$input3;
      // For external handler that may want a reportValidity(...) method
      return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);
    }
  }
});