UNPKG

5.37 kBJavaScriptView Raw
1"use strict";
2'use client';
3
4var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6Object.defineProperty(exports, "__esModule", {
7 value: true
8});
9exports.default = void 0;
10var React = _interopRequireWildcard(require("react"));
11var _propTypes = _interopRequireDefault(require("prop-types"));
12var _clsx = _interopRequireDefault(require("clsx"));
13var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14var _colorManipulator = require("@mui/system/colorManipulator");
15var _Tablelvl2Context = _interopRequireDefault(require("../Table/Tablelvl2Context"));
16var _zeroStyled = require("../zero-styled");
17var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
18var _DefaultPropsProvider = require("../DefaultPropsProvider");
19var _tableRowClasses = _interopRequireWildcard(require("./tableRowClasses"));
20var _jsxRuntime = require("react/jsx-runtime");
21const useUtilityClasses = ownerState => {
22 const {
23 classes,
24 selected,
25 hover,
26 head,
27 footer
28 } = ownerState;
29 const slots = {
30 root: ['root', selected && 'selected', hover && 'hover', head && 'head', footer && 'footer']
31 };
32 return (0, _composeClasses.default)(slots, _tableRowClasses.getTableRowUtilityClass, classes);
33};
34const TableRowRoot = (0, _zeroStyled.styled)('tr', {
35 name: 'MuiTableRow',
36 slot: 'Root',
37 overridesResolver: (props, styles) => {
38 const {
39 ownerState
40 } = props;
41 return [styles.root, ownerState.head && styles.head, ownerState.footer && styles.footer];
42 }
43})((0, _memoTheme.default)(({
44 theme
45}) => ({
46 color: 'inherit',
47 display: 'table-row',
48 verticalAlign: 'middle',
49 // We disable the focus ring for mouse, touch and keyboard users.
50 outline: 0,
51 [`&.${_tableRowClasses.default.hover}:hover`]: {
52 backgroundColor: (theme.vars || theme).palette.action.hover
53 },
54 [`&.${_tableRowClasses.default.selected}`]: {
55 backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
56 '&:hover': {
57 backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)
58 }
59 }
60})));
61const defaultComponent = 'tr';
62/**
63 * Will automatically set dynamic row height
64 * based on the material table element parent (head, body, etc).
65 */
66const TableRow = /*#__PURE__*/React.forwardRef(function TableRow(inProps, ref) {
67 const props = (0, _DefaultPropsProvider.useDefaultProps)({
68 props: inProps,
69 name: 'MuiTableRow'
70 });
71 const {
72 className,
73 component = defaultComponent,
74 hover = false,
75 selected = false,
76 ...other
77 } = props;
78 const tablelvl2 = React.useContext(_Tablelvl2Context.default);
79 const ownerState = {
80 ...props,
81 component,
82 hover,
83 selected,
84 head: tablelvl2 && tablelvl2.variant === 'head',
85 footer: tablelvl2 && tablelvl2.variant === 'footer'
86 };
87 const classes = useUtilityClasses(ownerState);
88 return /*#__PURE__*/(0, _jsxRuntime.jsx)(TableRowRoot, {
89 as: component,
90 ref: ref,
91 className: (0, _clsx.default)(classes.root, className),
92 role: component === defaultComponent ? null : 'row',
93 ownerState: ownerState,
94 ...other
95 });
96});
97process.env.NODE_ENV !== "production" ? TableRow.propTypes /* remove-proptypes */ = {
98 // ┌────────────────────────────── Warning ──────────────────────────────┐
99 // │ These PropTypes are generated from the TypeScript type definitions. │
100 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
101 // └─────────────────────────────────────────────────────────────────────┘
102 /**
103 * Should be valid `<tr>` children such as `TableCell`.
104 */
105 children: _propTypes.default.node,
106 /**
107 * Override or extend the styles applied to the component.
108 */
109 classes: _propTypes.default.object,
110 /**
111 * @ignore
112 */
113 className: _propTypes.default.string,
114 /**
115 * The component used for the root node.
116 * Either a string to use a HTML element or a component.
117 */
118 component: _propTypes.default.elementType,
119 /**
120 * If `true`, the table row will shade on hover.
121 * @default false
122 */
123 hover: _propTypes.default.bool,
124 /**
125 * If `true`, the table row will have the selected shading.
126 * @default false
127 */
128 selected: _propTypes.default.bool,
129 /**
130 * The system prop that allows defining system overrides as well as additional CSS styles.
131 */
132 sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
133} : void 0;
134var _default = exports.default = TableRow;
\No newline at end of file