@meve/ui
Version:
Argon design system components library
83 lines (74 loc) • 2.53 kB
JavaScript
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import { isArray } from '../shared';
export var ValidationMixin = {
data: function data() {
return {
errorMessage: ''
};
},
methods: {
validateRules: function validateRules(rules, value, apis) {
var _this = this;
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
var resArr, valid;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!(!isArray(rules) || !rules.length)) {
_context.next = 2;
break;
}
return _context.abrupt("return", true);
case 2:
_context.next = 4;
return Promise.all(rules.map(function (rule) {
return rule(value, apis);
}));
case 4:
resArr = _context.sent;
valid = !resArr.some(function (res) {
if (res !== true) {
_this.errorMessage = String(res);
return true;
}
return false;
});
valid && (_this.errorMessage = '');
return _context.abrupt("return", valid);
case 8:
case "end":
return _context.stop();
}
}
}, _callee);
}))();
},
validateWithTrigger: function validateWithTrigger(validateTrigger, trigger, rules, value, apis) {
var _this2 = this;
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
if (!validateTrigger.includes(trigger)) {
_context2.next = 3;
break;
}
_context2.next = 3;
return _this2.validateRules(rules, value, apis);
case 3:
case "end":
return _context2.stop();
}
}
}, _callee2);
}))();
},
// expose
resetValidation: function resetValidation() {
this.errorMessage = '';
}
}
};