UNPKG

4.09 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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
12var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
16var _react = _interopRequireDefault(require("react"));
17
18var _propTypes = _interopRequireDefault(require("prop-types"));
19
20var _clsx = _interopRequireDefault(require("clsx"));
21
22var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
23
24var _useTheme = _interopRequireDefault(require("../styles/useTheme"));
25
26var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
27
28var styles = function styles(theme) {
29 var align = theme.direction === 'rtl' ? 'right' : 'left';
30 return {
31 /* Styles applied to the root element. */
32 root: {
33 position: 'absolute',
34 bottom: 0,
35 right: 0,
36 top: -5,
37 left: 0,
38 margin: 0,
39 padding: 0,
40 pointerEvents: 'none',
41 borderRadius: 'inherit',
42 borderStyle: 'solid',
43 borderWidth: 1,
44 // Match the Input Label
45 transition: theme.transitions.create(["padding-".concat(align), 'border-color', 'border-width'], {
46 duration: theme.transitions.duration.shorter,
47 easing: theme.transitions.easing.easeOut
48 })
49 },
50
51 /* Styles applied to the legend element. */
52 legend: {
53 textAlign: 'left',
54 padding: 0,
55 lineHeight: '11px',
56 transition: theme.transitions.create('width', {
57 duration: theme.transitions.duration.shorter,
58 easing: theme.transitions.easing.easeOut
59 })
60 }
61 };
62};
63/**
64 * @ignore - internal component.
65 */
66
67
68exports.styles = styles;
69
70var NotchedOutline = _react.default.forwardRef(function NotchedOutline(props, ref) {
71 var children = props.children,
72 classes = props.classes,
73 className = props.className,
74 labelWidthProp = props.labelWidth,
75 notched = props.notched,
76 style = props.style,
77 other = (0, _objectWithoutProperties2.default)(props, ["children", "classes", "className", "labelWidth", "notched", "style"]);
78 var theme = (0, _useTheme.default)();
79 var align = theme.direction === 'rtl' ? 'right' : 'left';
80 var labelWidth = labelWidthProp > 0 ? labelWidthProp * 0.75 + 8 : 0;
81 return _react.default.createElement("fieldset", (0, _extends3.default)({
82 "aria-hidden": true,
83 style: (0, _extends3.default)((0, _defineProperty2.default)({}, "padding".concat((0, _capitalize.default)(align)), 8 + (notched ? 0 : labelWidth / 2)), style),
84 className: (0, _clsx.default)(classes.root, className),
85 ref: ref
86 }, other), _react.default.createElement("legend", {
87 className: classes.legend,
88 style: {
89 // IE 11: fieldset with legend does not render
90 // a border radius. This maintains consistency
91 // by always having a legend rendered
92 width: notched ? labelWidth : 0.01
93 }
94 }, _react.default.createElement("span", {
95 dangerouslySetInnerHTML: {
96 __html: '​'
97 }
98 })));
99});
100
101process.env.NODE_ENV !== "production" ? NotchedOutline.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,
112
113 /**
114 * @ignore
115 */
116 className: _propTypes.default.string,
117
118 /**
119 * The width of the label.
120 */
121 labelWidth: _propTypes.default.number.isRequired,
122
123 /**
124 * If `true`, the outline is notched to accommodate the label.
125 */
126 notched: _propTypes.default.bool.isRequired,
127
128 /**
129 * @ignore
130 */
131 style: _propTypes.default.object
132} : void 0;
133
134var _default = (0, _withStyles.default)(styles, {
135 name: 'PrivateNotchedOutline'
136})(NotchedOutline);
137
138exports.default = _default;
\No newline at end of file