{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { isFilled, isAdornedStart } from '../InputBase/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport isMuiElement from '../utils/isMuiElement';\nimport FormControlContext from './FormControlContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n flexDirection: 'column',\n position: 'relative',\n // Reset fieldset default style.\n minWidth: 0,\n padding: 0,\n margin: 0,\n border: 0,\n verticalAlign: 'top' // Fix alignment issue on Safari.\n\n },\n\n /* Styles applied to the root element if `margin=\"normal\"`. */\n marginNormal: {\n marginTop: 16,\n marginBottom: 8\n },\n\n /* Styles applied to the root element if `margin=\"dense\"`. */\n marginDense: {\n marginTop: 8,\n marginBottom: 4\n },\n\n /* Styles applied to the root element if `fullWidth={true}`. */\n fullWidth: {\n width: '100%'\n }\n};\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * - FormLabel\n * - FormHelperText\n * - Input\n * - InputLabel\n *\n * You can find one composition example below and more going to [the demos](/components/text-fields/#components).\n *\n * ```jsx\n * \n * Email address\n * \n * We'll never share your email.\n * \n * ```\n *\n * ⚠️Only one input can be used within a FormControl.\n */\n\nvar FormControl = /*#__PURE__*/React.forwardRef(function FormControl(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'primary' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$error = props.error,\n error = _props$error === void 0 ? false : _props$error,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n visuallyFocused = props.focused,\n _props$hiddenLabel = props.hiddenLabel,\n hiddenLabel = _props$hiddenLabel === void 0 ? false : _props$hiddenLabel,\n _props$margin = props.margin,\n margin = _props$margin === void 0 ? 'none' : _props$margin,\n _props$required = props.required,\n required = _props$required === void 0 ? false : _props$required,\n size = props.size,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"fullWidth\", \"focused\", \"hiddenLabel\", \"margin\", \"required\", \"size\", \"variant\"]);\n\n var _React$useState = React.useState(function () {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n var initialAdornedStart = false;\n\n if (children) {\n React.Children.forEach(children, function (child) {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n\n var input = isMuiElement(child, ['Select']) ? child.props.input : child;\n\n if (input && isAdornedStart(input.props)) {\n initialAdornedStart = true;\n }\n });\n }\n\n return initialAdornedStart;\n }),\n adornedStart = _React$useState[0],\n setAdornedStart = _React$useState[1];\n\n var _React$useState2 = React.useState(function () {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n var initialFilled = false;\n\n if (children) {\n React.Children.forEach(children, function (child) {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n\n if (isFilled(child.props, true)) {\n initialFilled = true;\n }\n });\n }\n\n return initialFilled;\n }),\n filled = _React$useState2[0],\n setFilled = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _focused = _React$useState3[0],\n setFocused = _React$useState3[1];\n\n var focused = visuallyFocused !== undefined ? visuallyFocused : _focused;\n\n if (disabled && focused) {\n setFocused(false);\n }\n\n var registerEffect;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var registeredInput = React.useRef(false);\n\n registerEffect = function registerEffect() {\n if (registeredInput.current) {\n console.error(['Material-UI: There are multiple InputBase components inside a FormControl.', 'This is not supported. It might cause infinite rendering loops.', 'Only use one InputBase.'].join('\\n'));\n }\n\n registeredInput.current = true;\n return function () {\n registeredInput.current = false;\n };\n };\n }\n\n var onFilled = React.useCallback(function () {\n setFilled(true);\n }, []);\n var onEmpty = React.useCallback(function () {\n setFilled(false);\n }, []);\n var childContext = {\n adornedStart: adornedStart,\n setAdornedStart: setAdornedStart,\n color: color,\n disabled: disabled,\n error: error,\n filled: filled,\n focused: focused,\n fullWidth: fullWidth,\n hiddenLabel: hiddenLabel,\n margin: (size === 'small' ? 'dense' : undefined) || margin,\n onBlur: function onBlur() {\n setFocused(false);\n },\n onEmpty: onEmpty,\n onFilled: onFilled,\n onFocus: function onFocus() {\n setFocused(true);\n },\n registerEffect: registerEffect,\n required: required,\n variant: variant\n };\n return /*#__PURE__*/React.createElement(FormControlContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, margin !== 'none' && classes[\"margin\".concat(capitalize(margin))], fullWidth && classes.fullWidth),\n ref: ref\n }, other), children));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControl.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The contents of the form control.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, the label, input and helper text should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the label should be displayed in an error state.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the component will be displayed in focused state.\n */\n focused: PropTypes.bool,\n\n /**\n * If `true`, the component will take up the full width of its container.\n */\n fullWidth: PropTypes.bool,\n\n /**\n * If `true`, the label will be hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n */\n hiddenLabel: PropTypes.bool,\n\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n\n /**\n * If `true`, the label will indicate that the input is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the text field.\n */\n size: PropTypes.oneOf(['medium', 'small']),\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiFormControl'\n})(FormControl);","map":{"version":3,"sources":["/app/node_modules/@material-ui/core/esm/FormControl/FormControl.js"],"names":["_extends","_objectWithoutProperties","React","PropTypes","clsx","isFilled","isAdornedStart","withStyles","capitalize","isMuiElement","FormControlContext","styles","root","display","flexDirection","position","minWidth","padding","margin","border","verticalAlign","marginNormal","marginTop","marginBottom","marginDense","fullWidth","width","FormControl","forwardRef","props","ref","children","classes","className","_props$color","color","_props$component","component","Component","_props$disabled","disabled","_props$error","error","_props$fullWidth","visuallyFocused","focused","_props$hiddenLabel","hiddenLabel","_props$margin","_props$required","required","size","_props$variant","variant","other","_React$useState","useState","initialAdornedStart","Children","forEach","child","input","adornedStart","setAdornedStart","_React$useState2","initialFilled","filled","setFilled","_React$useState3","_focused","setFocused","undefined","registerEffect","process","env","NODE_ENV","registeredInput","useRef","current","console","join","onFilled","useCallback","onEmpty","childContext","onBlur","onFocus","createElement","Provider","value","concat","propTypes","node","object","string","oneOf","elementType","bool","name"],"mappings":"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","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { isFilled, isAdornedStart } from '../InputBase/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport isMuiElement from '../utils/isMuiElement';\nimport FormControlContext from './FormControlContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n flexDirection: 'column',\n position: 'relative',\n // Reset fieldset default style.\n minWidth: 0,\n padding: 0,\n margin: 0,\n border: 0,\n verticalAlign: 'top' // Fix alignment issue on Safari.\n\n },\n\n /* Styles applied to the root element if `margin=\"normal\"`. */\n marginNormal: {\n marginTop: 16,\n marginBottom: 8\n },\n\n /* Styles applied to the root element if `margin=\"dense\"`. */\n marginDense: {\n marginTop: 8,\n marginBottom: 4\n },\n\n /* Styles applied to the root element if `fullWidth={true}`. */\n fullWidth: {\n width: '100%'\n }\n};\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * - FormLabel\n * - FormHelperText\n * - Input\n * - InputLabel\n *\n * You can find one composition example below and more going to [the demos](/components/text-fields/#components).\n *\n * ```jsx\n * \n * Email address\n * \n * We'll never share your email.\n * \n * ```\n *\n * ⚠️Only one input can be used within a FormControl.\n */\n\nvar FormControl = /*#__PURE__*/React.forwardRef(function FormControl(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'primary' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$error = props.error,\n error = _props$error === void 0 ? false : _props$error,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n visuallyFocused = props.focused,\n _props$hiddenLabel = props.hiddenLabel,\n hiddenLabel = _props$hiddenLabel === void 0 ? false : _props$hiddenLabel,\n _props$margin = props.margin,\n margin = _props$margin === void 0 ? 'none' : _props$margin,\n _props$required = props.required,\n required = _props$required === void 0 ? false : _props$required,\n size = props.size,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"fullWidth\", \"focused\", \"hiddenLabel\", \"margin\", \"required\", \"size\", \"variant\"]);\n\n var _React$useState = React.useState(function () {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n var initialAdornedStart = false;\n\n if (children) {\n React.Children.forEach(children, function (child) {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n\n var input = isMuiElement(child, ['Select']) ? child.props.input : child;\n\n if (input && isAdornedStart(input.props)) {\n initialAdornedStart = true;\n }\n });\n }\n\n return initialAdornedStart;\n }),\n adornedStart = _React$useState[0],\n setAdornedStart = _React$useState[1];\n\n var _React$useState2 = React.useState(function () {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n var initialFilled = false;\n\n if (children) {\n React.Children.forEach(children, function (child) {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n\n if (isFilled(child.props, true)) {\n initialFilled = true;\n }\n });\n }\n\n return initialFilled;\n }),\n filled = _React$useState2[0],\n setFilled = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _focused = _React$useState3[0],\n setFocused = _React$useState3[1];\n\n var focused = visuallyFocused !== undefined ? visuallyFocused : _focused;\n\n if (disabled && focused) {\n setFocused(false);\n }\n\n var registerEffect;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var registeredInput = React.useRef(false);\n\n registerEffect = function registerEffect() {\n if (registeredInput.current) {\n console.error(['Material-UI: There are multiple InputBase components inside a FormControl.', 'This is not supported. It might cause infinite rendering loops.', 'Only use one InputBase.'].join('\\n'));\n }\n\n registeredInput.current = true;\n return function () {\n registeredInput.current = false;\n };\n };\n }\n\n var onFilled = React.useCallback(function () {\n setFilled(true);\n }, []);\n var onEmpty = React.useCallback(function () {\n setFilled(false);\n }, []);\n var childContext = {\n adornedStart: adornedStart,\n setAdornedStart: setAdornedStart,\n color: color,\n disabled: disabled,\n error: error,\n filled: filled,\n focused: focused,\n fullWidth: fullWidth,\n hiddenLabel: hiddenLabel,\n margin: (size === 'small' ? 'dense' : undefined) || margin,\n onBlur: function onBlur() {\n setFocused(false);\n },\n onEmpty: onEmpty,\n onFilled: onFilled,\n onFocus: function onFocus() {\n setFocused(true);\n },\n registerEffect: registerEffect,\n required: required,\n variant: variant\n };\n return /*#__PURE__*/React.createElement(FormControlContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, margin !== 'none' && classes[\"margin\".concat(capitalize(margin))], fullWidth && classes.fullWidth),\n ref: ref\n }, other), children));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControl.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The contents of the form control.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, the label, input and helper text should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the label should be displayed in an error state.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the component will be displayed in focused state.\n */\n focused: PropTypes.bool,\n\n /**\n * If `true`, the component will take up the full width of its container.\n */\n fullWidth: PropTypes.bool,\n\n /**\n * If `true`, the label will be hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n */\n hiddenLabel: PropTypes.bool,\n\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n\n /**\n * If `true`, the label will indicate that the input is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the text field.\n */\n size: PropTypes.oneOf(['medium', 'small']),\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiFormControl'\n})(FormControl);"]},"metadata":{},"sourceType":"module"}