UNPKG

5.12 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 = void 0;
11
12var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
14var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16var React = _interopRequireWildcard(require("react"));
17
18var _propTypes = _interopRequireDefault(require("prop-types"));
19
20var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
21
22var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
23
24var _useTheme = _interopRequireDefault(require("../styles/useTheme"));
25
26var styles = function styles(theme) {
27 var hidden = {
28 display: 'none'
29 };
30 return theme.breakpoints.keys.reduce(function (acc, key) {
31 acc["only".concat((0, _capitalize.default)(key))] = (0, _defineProperty2.default)({}, theme.breakpoints.only(key), hidden);
32 acc["".concat(key, "Up")] = (0, _defineProperty2.default)({}, theme.breakpoints.up(key), hidden);
33 acc["".concat(key, "Down")] = (0, _defineProperty2.default)({}, theme.breakpoints.down(key), hidden);
34 return acc;
35 }, {});
36};
37/**
38 * @ignore - internal component.
39 */
40
41
42function HiddenCss(props) {
43 var children = props.children,
44 classes = props.classes,
45 className = props.className,
46 only = props.only,
47 other = (0, _objectWithoutProperties2.default)(props, ["children", "classes", "className", "only"]);
48 var theme = (0, _useTheme.default)();
49
50 if (process.env.NODE_ENV !== 'production') {
51 var unknownProps = Object.keys(other).filter(function (propName) {
52 var isUndeclaredBreakpoint = !theme.breakpoints.keys.some(function (breakpoint) {
53 return "".concat(breakpoint, "Up") === propName || "".concat(breakpoint, "Down") === propName;
54 });
55 return isUndeclaredBreakpoint;
56 });
57
58 if (unknownProps.length > 0) {
59 console.error("Material-UI: Unsupported props received by `<Hidden implementation=\"css\" />`: ".concat(unknownProps.join(', '), ". Did you forget to wrap this component in a ThemeProvider declaring these breakpoints?"));
60 }
61 }
62
63 var clsx = [];
64
65 if (className) {
66 clsx.push(className);
67 }
68
69 for (var i = 0; i < theme.breakpoints.keys.length; i += 1) {
70 var breakpoint = theme.breakpoints.keys[i];
71 var breakpointUp = props["".concat(breakpoint, "Up")];
72 var breakpointDown = props["".concat(breakpoint, "Down")];
73
74 if (breakpointUp) {
75 clsx.push(classes["".concat(breakpoint, "Up")]);
76 }
77
78 if (breakpointDown) {
79 clsx.push(classes["".concat(breakpoint, "Down")]);
80 }
81 }
82
83 if (only) {
84 var onlyBreakpoints = Array.isArray(only) ? only : [only];
85 onlyBreakpoints.forEach(function (breakpoint) {
86 clsx.push(classes["only".concat((0, _capitalize.default)(breakpoint))]);
87 });
88 }
89
90 return /*#__PURE__*/React.createElement("div", {
91 className: clsx.join(' ')
92 }, children);
93}
94
95process.env.NODE_ENV !== "production" ? HiddenCss.propTypes = {
96 /**
97 * The content of the component.
98 */
99 children: _propTypes.default.node,
100
101 /**
102 * Override or extend the styles applied to the component.
103 * See [CSS API](#css) below for more details.
104 */
105 classes: _propTypes.default.object.isRequired,
106
107 /**
108 * @ignore
109 */
110 className: _propTypes.default.string,
111
112 /**
113 * Specify which implementation to use. 'js' is the default, 'css' works better for
114 * server-side rendering.
115 */
116 implementation: _propTypes.default.oneOf(['js', 'css']),
117
118 /**
119 * If `true`, screens this size and down will be hidden.
120 */
121 lgDown: _propTypes.default.bool,
122
123 /**
124 * If `true`, screens this size and up will be hidden.
125 */
126 lgUp: _propTypes.default.bool,
127
128 /**
129 * If `true`, screens this size and down will be hidden.
130 */
131 mdDown: _propTypes.default.bool,
132
133 /**
134 * If `true`, screens this size and up will be hidden.
135 */
136 mdUp: _propTypes.default.bool,
137
138 /**
139 * Hide the given breakpoint(s).
140 */
141 only: _propTypes.default.oneOfType([_propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes.default.arrayOf(_propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),
142
143 /**
144 * If `true`, screens this size and down will be hidden.
145 */
146 smDown: _propTypes.default.bool,
147
148 /**
149 * If `true`, screens this size and up will be hidden.
150 */
151 smUp: _propTypes.default.bool,
152
153 /**
154 * If `true`, screens this size and down will be hidden.
155 */
156 xlDown: _propTypes.default.bool,
157
158 /**
159 * If `true`, screens this size and up will be hidden.
160 */
161 xlUp: _propTypes.default.bool,
162
163 /**
164 * If `true`, screens this size and down will be hidden.
165 */
166 xsDown: _propTypes.default.bool,
167
168 /**
169 * If `true`, screens this size and up will be hidden.
170 */
171 xsUp: _propTypes.default.bool
172} : void 0;
173
174var _default = (0, _withStyles.default)(styles, {
175 name: 'PrivateHiddenCss'
176})(HiddenCss);
177
178exports.default = _default;
\No newline at end of file