UNPKG

3.65 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 _react = _interopRequireDefault(require("react"));
11
12var _propTypes = _interopRequireDefault(require("prop-types"));
13
14var _clsx = _interopRequireDefault(require("clsx"));
15
16var _CheckCircle = _interopRequireDefault(require("../internal/svg-icons/CheckCircle"));
17
18var _Warning = _interopRequireDefault(require("../internal/svg-icons/Warning"));
19
20var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
21
22var _SvgIcon = _interopRequireDefault(require("../SvgIcon"));
23
24var styles = function styles(theme) {
25 return {
26 /* Styles applied to the root element. */
27 root: {
28 display: 'block',
29 color: theme.palette.text.disabled,
30 '&$completed': {
31 color: theme.palette.primary.main
32 },
33 '&$active': {
34 color: theme.palette.primary.main
35 },
36 '&$error': {
37 color: theme.palette.error.main
38 }
39 },
40
41 /* Styles applied to the SVG text element. */
42 text: {
43 fill: theme.palette.primary.contrastText,
44 fontSize: theme.typography.caption.fontSize,
45 fontFamily: theme.typography.fontFamily
46 },
47
48 /* Pseudo-class applied to the root element if `active={true}`. */
49 active: {},
50
51 /* Pseudo-class applied to the root element if `completed={true}`. */
52 completed: {},
53
54 /* Pseudo-class applied to the root element if `error={true}`. */
55 error: {}
56 };
57};
58
59exports.styles = styles;
60
61var _ref = _react.default.createElement("circle", {
62 cx: "12",
63 cy: "12",
64 r: "12"
65});
66
67var StepIcon = _react.default.forwardRef(function StepIcon(props, ref) {
68 var _props$completed = props.completed,
69 completed = _props$completed === void 0 ? false : _props$completed,
70 icon = props.icon,
71 _props$active = props.active,
72 active = _props$active === void 0 ? false : _props$active,
73 _props$error = props.error,
74 error = _props$error === void 0 ? false : _props$error,
75 classes = props.classes;
76
77 if (typeof icon === 'number' || typeof icon === 'string') {
78 var className = (0, _clsx.default)(classes.root, active && classes.active, error && classes.error, completed && classes.completed);
79
80 if (error) {
81 return _react.default.createElement(_Warning.default, {
82 className: className,
83 ref: ref
84 });
85 }
86
87 if (completed) {
88 return _react.default.createElement(_CheckCircle.default, {
89 className: className,
90 ref: ref
91 });
92 }
93
94 return _react.default.createElement(_SvgIcon.default, {
95 className: className,
96 ref: ref
97 }, _ref, _react.default.createElement("text", {
98 className: classes.text,
99 x: "12",
100 y: "16",
101 textAnchor: "middle"
102 }, icon));
103 }
104
105 return icon;
106});
107
108process.env.NODE_ENV !== "production" ? StepIcon.propTypes = {
109 /**
110 * Whether this step is active.
111 */
112 active: _propTypes.default.bool,
113
114 /**
115 * Override or extend the styles applied to the component.
116 * See [CSS API](#css) below for more details.
117 */
118 classes: _propTypes.default.object.isRequired,
119
120 /**
121 * Mark the step as completed. Is passed to child components.
122 */
123 completed: _propTypes.default.bool,
124
125 /**
126 * Mark the step as failed.
127 */
128 error: _propTypes.default.bool,
129
130 /**
131 * The label displayed in the step icon.
132 */
133 icon: _propTypes.default.node.isRequired
134} : void 0;
135
136var _default = (0, _withStyles.default)(styles, {
137 name: 'MuiStepIcon'
138})(StepIcon);
139
140exports.default = _default;
\No newline at end of file