UNPKG

4.95 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = exports.styles = void 0;
9
10var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _react = _interopRequireDefault(require("react"));
15
16var _propTypes = _interopRequireDefault(require("prop-types"));
17
18var _clsx = _interopRequireDefault(require("clsx"));
19
20var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
21
22var _useFormControl = _interopRequireDefault(require("../FormControl/useFormControl"));
23
24var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
25
26var styles = function styles(theme) {
27 return {
28 /* Styles applied to the root element. */
29 root: (0, _extends2.default)({
30 color: theme.palette.text.secondary
31 }, theme.typography.caption, {
32 textAlign: 'left',
33 marginTop: 8,
34 lineHeight: '1em',
35 minHeight: '1em',
36 margin: 0,
37 '&$disabled': {
38 color: theme.palette.text.disabled
39 },
40 '&$error': {
41 color: theme.palette.error.main
42 }
43 }),
44
45 /* Pseudo-class applied to the root element if `error={true}`. */
46 error: {},
47
48 /* Pseudo-class applied to the root element if `disabled={true}`. */
49 disabled: {},
50
51 /* Styles applied to the root element if `margin="dense"`. */
52 marginDense: {
53 marginTop: 4
54 },
55
56 /* Styles applied to the root element if `variant="filled"` or `variant="outlined"`. */
57 contained: {
58 margin: '8px 14px 0'
59 },
60
61 /* Pseudo-class applied to the root element if `focused={true}`. */
62 focused: {},
63
64 /* Pseudo-class applied to the root element if `filled={true}`. */
65 filled: {},
66
67 /* Pseudo-class applied to the root element if `required={true}`. */
68 required: {}
69 };
70};
71
72exports.styles = styles;
73
74var FormHelperText = _react.default.forwardRef(function FormHelperText(props, ref) {
75 var classes = props.classes,
76 className = props.className,
77 _props$component = props.component,
78 Component = _props$component === void 0 ? 'p' : _props$component,
79 disabled = props.disabled,
80 error = props.error,
81 filled = props.filled,
82 focused = props.focused,
83 margin = props.margin,
84 required = props.required,
85 variant = props.variant,
86 other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"]);
87 var muiFormControl = (0, _useFormControl.default)();
88 var fcs = (0, _formControlState.default)({
89 props: props,
90 muiFormControl: muiFormControl,
91 states: ['variant', 'margin', 'disabled', 'error', 'filled', 'focused', 'required']
92 });
93 return _react.default.createElement(Component, (0, _extends2.default)({
94 className: (0, _clsx.default)(classes.root, (fcs.variant === 'filled' || fcs.variant === 'outlined') && classes.contained, className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required, {
95 dense: classes.marginDense
96 }[fcs.margin]),
97 ref: ref
98 }, other));
99});
100
101process.env.NODE_ENV !== "production" ? FormHelperText.propTypes = {
102 /**
103 * The content of the component.
104 */
105 children: _propTypes.default.node,
106
107 /**
108 * Override or extend the styles applied to the component.
109 * See [CSS API](#css) below for more details.
110 */
111 classes: _propTypes.default.object.isRequired,
112
113 /**
114 * @ignore
115 */
116 className: _propTypes.default.string,
117
118 /**
119 * The component used for the root node.
120 * Either a string to use a DOM element or a component.
121 */
122 component: _propTypes.default.elementType,
123
124 /**
125 * If `true`, the helper text should be displayed in a disabled state.
126 */
127 disabled: _propTypes.default.bool,
128
129 /**
130 * If `true`, helper text should be displayed in an error state.
131 */
132 error: _propTypes.default.bool,
133
134 /**
135 * If `true`, the helper text should use filled classes key.
136 */
137 filled: _propTypes.default.bool,
138
139 /**
140 * If `true`, the helper text should use focused classes key.
141 */
142 focused: _propTypes.default.bool,
143
144 /**
145 * If `dense`, will adjust vertical spacing. This is normally obtained via context from
146 * FormControl.
147 */
148 margin: _propTypes.default.oneOf(['dense']),
149
150 /**
151 * If `true`, the helper text should use required classes key.
152 */
153 required: _propTypes.default.bool,
154
155 /**
156 * The variant to use.
157 */
158 variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])
159} : void 0;
160
161var _default = (0, _withStyles.default)(styles, {
162 name: 'MuiFormHelperText'
163})(FormHelperText);
164
165exports.default = _default;
\No newline at end of file