UNPKG

5.68 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.default = exports.styles = void 0;
11
12var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
14var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
16var React = _interopRequireWildcard(require("react"));
17
18var _propTypes = _interopRequireDefault(require("prop-types"));
19
20var _clsx = _interopRequireDefault(require("clsx"));
21
22var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
23
24var _useFormControl = _interopRequireDefault(require("../FormControl/useFormControl"));
25
26var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
27
28var styles = function styles(theme) {
29 return {
30 /* Styles applied to the root element. */
31 root: (0, _extends2.default)({
32 color: theme.palette.text.secondary
33 }, theme.typography.caption, {
34 textAlign: 'left',
35 marginTop: 3,
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 marginLeft: 14,
59 marginRight: 14
60 },
61
62 /* Pseudo-class applied to the root element if `focused={true}`. */
63 focused: {},
64
65 /* Pseudo-class applied to the root element if `filled={true}`. */
66 filled: {},
67
68 /* Pseudo-class applied to the root element if `required={true}`. */
69 required: {}
70 };
71};
72
73exports.styles = styles;
74var FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(props, ref) {
75 var children = props.children,
76 classes = props.classes,
77 className = props.className,
78 _props$component = props.component,
79 Component = _props$component === void 0 ? 'p' : _props$component,
80 disabled = props.disabled,
81 error = props.error,
82 filled = props.filled,
83 focused = props.focused,
84 margin = props.margin,
85 required = props.required,
86 variant = props.variant,
87 other = (0, _objectWithoutProperties2.default)(props, ["children", "classes", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"]);
88 var muiFormControl = (0, _useFormControl.default)();
89 var fcs = (0, _formControlState.default)({
90 props: props,
91 muiFormControl: muiFormControl,
92 states: ['variant', 'margin', 'disabled', 'error', 'filled', 'focused', 'required']
93 });
94 return /*#__PURE__*/React.createElement(Component, (0, _extends2.default)({
95 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, fcs.margin === 'dense' && classes.marginDense),
96 ref: ref
97 }, other), children === ' ' ?
98 /*#__PURE__*/
99 // eslint-disable-next-line react/no-danger
100 React.createElement("span", {
101 dangerouslySetInnerHTML: {
102 __html: '​'
103 }
104 }) : children);
105});
106process.env.NODE_ENV !== "production" ? FormHelperText.propTypes = {
107 // ----------------------------- Warning --------------------------------
108 // | These PropTypes are generated from the TypeScript type definitions |
109 // | To update them edit the d.ts file and run "yarn proptypes" |
110 // ----------------------------------------------------------------------
111
112 /**
113 * The content of the component.
114 *
115 * If `' '` is provided, the component reserves one line height for displaying a future message.
116 */
117 children: _propTypes.default.node,
118
119 /**
120 * Override or extend the styles applied to the component.
121 * See [CSS API](#css) below for more details.
122 */
123 classes: _propTypes.default.object,
124
125 /**
126 * @ignore
127 */
128 className: _propTypes.default.string,
129
130 /**
131 * The component used for the root node.
132 * Either a string to use a HTML element or a component.
133 */
134 component: _propTypes.default
135 /* @typescript-to-proptypes-ignore */
136 .elementType,
137
138 /**
139 * If `true`, the helper text should be displayed in a disabled state.
140 */
141 disabled: _propTypes.default.bool,
142
143 /**
144 * If `true`, helper text should be displayed in an error state.
145 */
146 error: _propTypes.default.bool,
147
148 /**
149 * If `true`, the helper text should use filled classes key.
150 */
151 filled: _propTypes.default.bool,
152
153 /**
154 * If `true`, the helper text should use focused classes key.
155 */
156 focused: _propTypes.default.bool,
157
158 /**
159 * If `dense`, will adjust vertical spacing. This is normally obtained via context from
160 * FormControl.
161 */
162 margin: _propTypes.default.oneOf(['dense']),
163
164 /**
165 * If `true`, the helper text should use required classes key.
166 */
167 required: _propTypes.default.bool,
168
169 /**
170 * The variant to use.
171 */
172 variant: _propTypes.default.oneOf(['filled', 'outlined', 'standard'])
173} : void 0;
174
175var _default = (0, _withStyles.default)(styles, {
176 name: 'MuiFormHelperText'
177})(FormHelperText);
178
179exports.default = _default;
\No newline at end of file