@meve/ui
Version:
Argon design system components library
70 lines (62 loc) • 2.02 kB
JavaScript
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import FormDetails from '../form-details';
import { createNamespace } from '../utils/create';
import { props } from './props';
import { ValidationMixin } from '../utils/mixins/validation';
import { createChildrenMixin } from '../utils/mixins/relation';
var _createNamespace = createNamespace('form-item'),
createComponent = _createNamespace.createComponent,
namespace = _createNamespace.namespace;
var FormItemPlugin = createComponent({
mixins: [ValidationMixin, createChildrenMixin('form', {
childrenKey: 'formItems'
})],
props: props,
watch: {
errorMessage: function errorMessage(_errorMessage) {
this.$emit('error-message-change', _errorMessage);
}
},
methods: {
// expose
validate: function validate() {
var _this = this;
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _this.validateRules(_this.rules, _this.value);
case 2:
case "end":
return _context.stop();
}
}
}, _callee);
}))();
},
renderLabel: function renderLabel() {
var h = this.$createElement;
if (this.label) {
return h("div", {
"class": namespace('__label')
}, [this.label]);
}
}
},
render: function render() {
var h = arguments[0];
var errorMessage = this.errorMessage;
return h("div", {
"class": namespace()
}, [this.renderLabel(), this.slots(), h(FormDetails, {
"attrs": {
"errorMessage": errorMessage
}
})]);
}
});
export var _FormItemComponent = FormItemPlugin;
export default FormItemPlugin;