UNPKG

3.96 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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
16var React = _interopRequireWildcard(require("react"));
17
18var _propTypes = _interopRequireDefault(require("prop-types"));
19
20var _clsx = _interopRequireDefault(require("clsx"));
21
22var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
23
24var _Tablelvl2Context = _interopRequireDefault(require("../Table/Tablelvl2Context"));
25
26var _colorManipulator = require("../styles/colorManipulator");
27
28var styles = function styles(theme) {
29 return {
30 /* Styles applied to the root element. */
31 root: {
32 color: 'inherit',
33 display: 'table-row',
34 verticalAlign: 'middle',
35 // We disable the focus ring for mouse, touch and keyboard users.
36 outline: 0,
37 '&$hover:hover': {
38 backgroundColor: theme.palette.action.hover
39 },
40 '&$selected, &$selected:hover': {
41 backgroundColor: (0, _colorManipulator.fade)(theme.palette.secondary.main, theme.palette.action.selectedOpacity)
42 }
43 },
44
45 /* Pseudo-class applied to the root element if `selected={true}`. */
46 selected: {},
47
48 /* Pseudo-class applied to the root element if `hover={true}`. */
49 hover: {},
50
51 /* Styles applied to the root element if table variant="head". */
52 head: {},
53
54 /* Styles applied to the root element if table variant="footer". */
55 footer: {}
56 };
57};
58
59exports.styles = styles;
60var defaultComponent = 'tr';
61/**
62 * Will automatically set dynamic row height
63 * based on the material table element parent (head, body, etc).
64 */
65
66var TableRow = /*#__PURE__*/React.forwardRef(function TableRow(props, ref) {
67 var classes = props.classes,
68 className = props.className,
69 _props$component = props.component,
70 Component = _props$component === void 0 ? defaultComponent : _props$component,
71 _props$hover = props.hover,
72 hover = _props$hover === void 0 ? false : _props$hover,
73 _props$selected = props.selected,
74 selected = _props$selected === void 0 ? false : _props$selected,
75 other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "component", "hover", "selected"]);
76 var tablelvl2 = React.useContext(_Tablelvl2Context.default);
77 return /*#__PURE__*/React.createElement(Component, (0, _extends2.default)({
78 ref: ref,
79 className: (0, _clsx.default)(classes.root, className, tablelvl2 && {
80 'head': classes.head,
81 'footer': classes.footer
82 }[tablelvl2.variant], hover && classes.hover, selected && classes.selected),
83 role: Component === defaultComponent ? null : 'row'
84 }, other));
85});
86process.env.NODE_ENV !== "production" ? TableRow.propTypes = {
87 /**
88 * Should be valid <tr> children such as `TableCell`.
89 */
90 children: _propTypes.default.node,
91
92 /**
93 * Override or extend the styles applied to the component.
94 * See [CSS API](#css) below for more details.
95 */
96 classes: _propTypes.default.object.isRequired,
97
98 /**
99 * @ignore
100 */
101 className: _propTypes.default.string,
102
103 /**
104 * The component used for the root node.
105 * Either a string to use a HTML element or a component.
106 */
107 component: _propTypes.default
108 /* @typescript-to-proptypes-ignore */
109 .elementType,
110
111 /**
112 * If `true`, the table row will shade on hover.
113 */
114 hover: _propTypes.default.bool,
115
116 /**
117 * If `true`, the table row will have the selected shading.
118 */
119 selected: _propTypes.default.bool
120} : void 0;
121
122var _default = (0, _withStyles.default)(styles, {
123 name: 'MuiTableRow'
124})(TableRow);
125
126exports.default = _default;
\No newline at end of file