FormItemInput.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  10. var _Col = _interopRequireDefault(require("../grid/Col"));
  11. var _context = require("./context");
  12. var _ErrorList = _interopRequireDefault(require("./ErrorList"));
  13. var _classNames = _interopRequireDefault(require("../_util/classNames"));
  14. var _propsUtil = require("../_util/props-util");
  15. const FormItemInput = (0, _vue.defineComponent)({
  16. compatConfig: {
  17. MODE: 3
  18. },
  19. slots: Object,
  20. inheritAttrs: false,
  21. props: ['prefixCls', 'errors', 'hasFeedback', 'onDomErrorVisibleChange', 'wrapperCol', 'help', 'extra', 'status', 'marginBottom', 'onErrorVisibleChanged'],
  22. setup(props, _ref) {
  23. let {
  24. slots
  25. } = _ref;
  26. const formContext = (0, _context.useInjectForm)();
  27. const {
  28. wrapperCol: contextWrapperCol
  29. } = formContext;
  30. // Pass to sub FormItem should not with col info
  31. const subFormContext = (0, _extends2.default)({}, formContext);
  32. delete subFormContext.labelCol;
  33. delete subFormContext.wrapperCol;
  34. (0, _context.useProvideForm)(subFormContext);
  35. (0, _context.useProvideFormItemPrefix)({
  36. prefixCls: (0, _vue.computed)(() => props.prefixCls),
  37. status: (0, _vue.computed)(() => props.status)
  38. });
  39. return () => {
  40. var _a, _b, _c;
  41. const {
  42. prefixCls,
  43. wrapperCol,
  44. marginBottom,
  45. onErrorVisibleChanged,
  46. help = (_a = slots.help) === null || _a === void 0 ? void 0 : _a.call(slots),
  47. errors = (0, _propsUtil.filterEmpty)((_b = slots.errors) === null || _b === void 0 ? void 0 : _b.call(slots)),
  48. // hasFeedback,
  49. // status,
  50. extra = (_c = slots.extra) === null || _c === void 0 ? void 0 : _c.call(slots)
  51. } = props;
  52. const baseClassName = `${prefixCls}-item`;
  53. const mergedWrapperCol = wrapperCol || (contextWrapperCol === null || contextWrapperCol === void 0 ? void 0 : contextWrapperCol.value) || {};
  54. const className = (0, _classNames.default)(`${baseClassName}-control`, mergedWrapperCol.class);
  55. // Should provides additional icon if `hasFeedback`
  56. // const IconNode = status && iconMap[status];
  57. return (0, _vue.createVNode)(_Col.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, mergedWrapperCol), {}, {
  58. "class": className
  59. }), {
  60. default: () => {
  61. var _a;
  62. return (0, _vue.createVNode)(_vue.Fragment, null, [(0, _vue.createVNode)("div", {
  63. "class": `${baseClassName}-control-input`
  64. }, [(0, _vue.createVNode)("div", {
  65. "class": `${baseClassName}-control-input-content`
  66. }, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])]), marginBottom !== null || errors.length ? (0, _vue.createVNode)("div", {
  67. "style": {
  68. display: 'flex',
  69. flexWrap: 'nowrap'
  70. }
  71. }, [(0, _vue.createVNode)(_ErrorList.default, {
  72. "errors": errors,
  73. "help": help,
  74. "class": `${baseClassName}-explain-connected`,
  75. "onErrorVisibleChanged": onErrorVisibleChanged
  76. }, null), !!marginBottom && (0, _vue.createVNode)("div", {
  77. "style": {
  78. width: 0,
  79. height: `${marginBottom}px`
  80. }
  81. }, null)]) : null, extra ? (0, _vue.createVNode)("div", {
  82. "class": `${baseClassName}-extra`
  83. }, [extra]) : null]);
  84. }
  85. });
  86. };
  87. }
  88. });
  89. var _default = exports.default = FormItemInput;