1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports.default = exports.styles = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
15 |
|
16 | var React = _interopRequireWildcard(require("react"));
|
17 |
|
18 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
19 |
|
20 | var _clsx = _interopRequireDefault(require("clsx"));
|
21 |
|
22 | var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
|
23 |
|
24 | var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
|
25 |
|
26 | var _utils = require("@material-ui/utils");
|
27 |
|
28 | var _useIsFocusVisible2 = _interopRequireDefault(require("../utils/useIsFocusVisible"));
|
29 |
|
30 | var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
|
31 |
|
32 | var _Typography = _interopRequireDefault(require("../Typography"));
|
33 |
|
34 | var styles = {
|
35 |
|
36 | root: {},
|
37 |
|
38 |
|
39 | underlineNone: {
|
40 | textDecoration: 'none'
|
41 | },
|
42 |
|
43 |
|
44 | underlineHover: {
|
45 | textDecoration: 'none',
|
46 | '&:hover': {
|
47 | textDecoration: 'underline'
|
48 | }
|
49 | },
|
50 |
|
51 |
|
52 | underlineAlways: {
|
53 | textDecoration: 'underline'
|
54 | },
|
55 |
|
56 |
|
57 |
|
58 | button: {
|
59 | position: 'relative',
|
60 | WebkitTapHighlightColor: 'transparent',
|
61 | backgroundColor: 'transparent',
|
62 |
|
63 |
|
64 | outline: 0,
|
65 | border: 0,
|
66 | margin: 0,
|
67 |
|
68 | borderRadius: 0,
|
69 | padding: 0,
|
70 |
|
71 | cursor: 'pointer',
|
72 | userSelect: 'none',
|
73 | verticalAlign: 'middle',
|
74 | '-moz-appearance': 'none',
|
75 |
|
76 | '-webkit-appearance': 'none',
|
77 |
|
78 | '&::-moz-focus-inner': {
|
79 | borderStyle: 'none'
|
80 |
|
81 | },
|
82 | '&$focusVisible': {
|
83 | outline: 'auto'
|
84 | }
|
85 | },
|
86 |
|
87 |
|
88 | focusVisible: {}
|
89 | };
|
90 | exports.styles = styles;
|
91 | var Link = React.forwardRef(function Link(props, ref) {
|
92 | var classes = props.classes,
|
93 | className = props.className,
|
94 | _props$color = props.color,
|
95 | color = _props$color === void 0 ? 'primary' : _props$color,
|
96 | _props$component = props.component,
|
97 | component = _props$component === void 0 ? 'a' : _props$component,
|
98 | onBlur = props.onBlur,
|
99 | onFocus = props.onFocus,
|
100 | TypographyClasses = props.TypographyClasses,
|
101 | _props$underline = props.underline,
|
102 | underline = _props$underline === void 0 ? 'hover' : _props$underline,
|
103 | _props$variant = props.variant,
|
104 | variant = _props$variant === void 0 ? 'inherit' : _props$variant,
|
105 | other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "color", "component", "onBlur", "onFocus", "TypographyClasses", "underline", "variant"]);
|
106 |
|
107 | var _useIsFocusVisible = (0, _useIsFocusVisible2.default)(),
|
108 | isFocusVisible = _useIsFocusVisible.isFocusVisible,
|
109 | onBlurVisible = _useIsFocusVisible.onBlurVisible,
|
110 | focusVisibleRef = _useIsFocusVisible.ref;
|
111 |
|
112 | var _React$useState = React.useState(false),
|
113 | focusVisible = _React$useState[0],
|
114 | setFocusVisible = _React$useState[1];
|
115 |
|
116 | var handlerRef = (0, _useForkRef.default)(ref, focusVisibleRef);
|
117 |
|
118 | var handleBlur = function handleBlur(event) {
|
119 | if (focusVisible) {
|
120 | onBlurVisible();
|
121 | setFocusVisible(false);
|
122 | }
|
123 |
|
124 | if (onBlur) {
|
125 | onBlur(event);
|
126 | }
|
127 | };
|
128 |
|
129 | var handleFocus = function handleFocus(event) {
|
130 | if (isFocusVisible(event)) {
|
131 | setFocusVisible(true);
|
132 | }
|
133 |
|
134 | if (onFocus) {
|
135 | onFocus(event);
|
136 | }
|
137 | };
|
138 |
|
139 | return React.createElement(_Typography.default, (0, _extends2.default)({
|
140 | className: (0, _clsx.default)(classes.root, classes["underline".concat((0, _capitalize.default)(underline))], className, focusVisible && classes.focusVisible, component === 'button' && classes.button),
|
141 | classes: TypographyClasses,
|
142 | color: color,
|
143 | component: component,
|
144 | onBlur: handleBlur,
|
145 | onFocus: handleFocus,
|
146 | ref: handlerRef,
|
147 | variant: variant
|
148 | }, other));
|
149 | });
|
150 | process.env.NODE_ENV !== "production" ? Link.propTypes = {
|
151 | |
152 |
|
153 |
|
154 | children: _propTypes.default.node.isRequired,
|
155 |
|
156 | |
157 |
|
158 |
|
159 |
|
160 | classes: _propTypes.default.object.isRequired,
|
161 |
|
162 | |
163 |
|
164 |
|
165 | className: _propTypes.default.string,
|
166 |
|
167 | |
168 |
|
169 |
|
170 | color: _propTypes.default.oneOf(['initial', 'inherit', 'primary', 'secondary', 'textPrimary', 'textSecondary', 'error']),
|
171 |
|
172 | |
173 |
|
174 |
|
175 |
|
176 | component: _utils.elementTypeAcceptingRef,
|
177 |
|
178 | |
179 |
|
180 |
|
181 | onBlur: _propTypes.default.func,
|
182 |
|
183 | |
184 |
|
185 |
|
186 | onFocus: _propTypes.default.func,
|
187 |
|
188 | |
189 |
|
190 |
|
191 | TypographyClasses: _propTypes.default.object,
|
192 |
|
193 | |
194 |
|
195 |
|
196 | underline: _propTypes.default.oneOf(['none', 'hover', 'always']),
|
197 |
|
198 | |
199 |
|
200 |
|
201 | variant: _propTypes.default.string
|
202 | } : void 0;
|
203 |
|
204 | var _default = (0, _withStyles.default)(styles, {
|
205 | name: 'MuiLink'
|
206 | })(Link);
|
207 |
|
208 | exports.default = _default; |
\ | No newline at end of file |