@aplus-frontend/antdv
Version:
Vue basic component library maintained based on ant-design-vue
84 lines • 3.4 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import { Fragment as _Fragment, createVNode as _createVNode } from "vue";
import _extends from "@babel/runtime/helpers/esm/extends";
import Col from '../grid/Col';
import { useProvideForm, useInjectForm, useProvideFormItemPrefix } from './context';
import ErrorList from './ErrorList';
import classNames from '../_util/classNames';
import { computed, defineComponent } from 'vue';
import { filterEmpty } from '../_util/props-util';
const FormItemInput = defineComponent({
compatConfig: {
MODE: 3
},
slots: Object,
inheritAttrs: false,
props: ['prefixCls', 'errors', 'hasFeedback', 'onDomErrorVisibleChange', 'wrapperCol', 'help', 'extra', 'status', 'marginBottom', 'onErrorVisibleChanged'],
setup(props, _ref) {
let {
slots
} = _ref;
const formContext = useInjectForm();
const {
wrapperCol: contextWrapperCol
} = formContext;
// Pass to sub FormItem should not with col info
const subFormContext = _extends({}, formContext);
delete subFormContext.labelCol;
delete subFormContext.wrapperCol;
useProvideForm(subFormContext);
useProvideFormItemPrefix({
prefixCls: computed(() => props.prefixCls),
status: computed(() => props.status)
});
return () => {
var _a, _b, _c;
const {
prefixCls,
wrapperCol,
marginBottom,
onErrorVisibleChanged,
help = (_a = slots.help) === null || _a === void 0 ? void 0 : _a.call(slots),
errors = filterEmpty((_b = slots.errors) === null || _b === void 0 ? void 0 : _b.call(slots)),
// hasFeedback,
// status,
extra = (_c = slots.extra) === null || _c === void 0 ? void 0 : _c.call(slots)
} = props;
const baseClassName = `${prefixCls}-item`;
const mergedWrapperCol = wrapperCol || (contextWrapperCol === null || contextWrapperCol === void 0 ? void 0 : contextWrapperCol.value) || {};
const className = classNames(`${baseClassName}-control`, mergedWrapperCol.class);
// Should provides additional icon if `hasFeedback`
// const IconNode = status && iconMap[status];
return _createVNode(Col, _objectSpread(_objectSpread({}, mergedWrapperCol), {}, {
"class": className
}), {
default: () => {
var _a;
return _createVNode(_Fragment, null, [_createVNode("div", {
"class": `${baseClassName}-control-input`
}, [_createVNode("div", {
"class": `${baseClassName}-control-input-content`
}, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])]), marginBottom !== null || errors.length ? _createVNode("div", {
"style": {
display: 'flex',
flexWrap: 'nowrap'
}
}, [_createVNode(ErrorList, {
"errors": errors,
"help": help,
"class": `${baseClassName}-explain-connected`,
"onErrorVisibleChanged": onErrorVisibleChanged
}, null), !!marginBottom && _createVNode("div", {
"style": {
width: 0,
height: `${marginBottom}px`
}
}, null)]) : null, extra ? _createVNode("div", {
"class": `${baseClassName}-extra`
}, [extra]) : null]);
}
});
};
}
});
export default FormItemInput;