UNPKG

4.68 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends2 = require('babel-runtime/helpers/extends');
8
9var _extends3 = _interopRequireDefault(_extends2);
10
11var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
12
13var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
14
15var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
16
17var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
18
19var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
20
21var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22
23var _createClass2 = require('babel-runtime/helpers/createClass');
24
25var _createClass3 = _interopRequireDefault(_createClass2);
26
27var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
28
29var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
30
31var _inherits2 = require('babel-runtime/helpers/inherits');
32
33var _inherits3 = _interopRequireDefault(_inherits2);
34
35var _simpleAssign = require('simple-assign');
36
37var _simpleAssign2 = _interopRequireDefault(_simpleAssign);
38
39var _react = require('react');
40
41var _react2 = _interopRequireDefault(_react);
42
43var _propTypes = require('prop-types');
44
45var _propTypes2 = _interopRequireDefault(_propTypes);
46
47var _propTypes3 = require('../utils/propTypes');
48
49var _propTypes4 = _interopRequireDefault(_propTypes3);
50
51var _transitions = require('../styles/transitions');
52
53var _transitions2 = _interopRequireDefault(_transitions);
54
55function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
56
57function getStyles(props, context) {
58 var rounded = props.rounded,
59 circle = props.circle,
60 transitionEnabled = props.transitionEnabled,
61 zDepth = props.zDepth;
62 var _context$muiTheme = context.muiTheme,
63 baseTheme = _context$muiTheme.baseTheme,
64 paper = _context$muiTheme.paper,
65 borderRadius = _context$muiTheme.borderRadius;
66
67
68 return {
69 root: {
70 color: paper.color,
71 backgroundColor: paper.backgroundColor,
72 transition: transitionEnabled && _transitions2.default.easeOut(),
73 boxSizing: 'border-box',
74 fontFamily: baseTheme.fontFamily,
75 WebkitTapHighlightColor: 'rgba(0,0,0,0)', // Remove mobile color flashing (deprecated)
76 boxShadow: paper.zDepthShadows[zDepth - 1], // No shadow for 0 depth papers
77 borderRadius: circle ? '50%' : rounded ? borderRadius : '0px'
78 }
79 };
80}
81
82var Paper = function (_Component) {
83 (0, _inherits3.default)(Paper, _Component);
84
85 function Paper() {
86 (0, _classCallCheck3.default)(this, Paper);
87 return (0, _possibleConstructorReturn3.default)(this, (Paper.__proto__ || (0, _getPrototypeOf2.default)(Paper)).apply(this, arguments));
88 }
89
90 (0, _createClass3.default)(Paper, [{
91 key: 'render',
92 value: function render() {
93 var _props = this.props,
94 children = _props.children,
95 circle = _props.circle,
96 rounded = _props.rounded,
97 style = _props.style,
98 transitionEnabled = _props.transitionEnabled,
99 zDepth = _props.zDepth,
100 other = (0, _objectWithoutProperties3.default)(_props, ['children', 'circle', 'rounded', 'style', 'transitionEnabled', 'zDepth']);
101 var prepareStyles = this.context.muiTheme.prepareStyles;
102
103 var styles = getStyles(this.props, this.context);
104
105 return _react2.default.createElement(
106 'div',
107 (0, _extends3.default)({}, other, { style: prepareStyles((0, _simpleAssign2.default)(styles.root, style)) }),
108 children
109 );
110 }
111 }]);
112 return Paper;
113}(_react.Component);
114
115Paper.defaultProps = {
116 circle: false,
117 rounded: true,
118 transitionEnabled: true,
119 zDepth: 1
120};
121Paper.contextTypes = {
122 muiTheme: _propTypes2.default.object.isRequired
123};
124Paper.propTypes = process.env.NODE_ENV !== "production" ? {
125 /**
126 * Children passed into the paper element.
127 */
128 children: _propTypes2.default.node,
129 /**
130 * Set to true to generate a circular paper container.
131 */
132 circle: _propTypes2.default.bool,
133 /**
134 * By default, the paper container will have a border radius.
135 * Set this to false to generate a container with sharp corners.
136 */
137 rounded: _propTypes2.default.bool,
138 /**
139 * Override the inline-styles of the root element.
140 */
141 style: _propTypes2.default.object,
142 /**
143 * Set to false to disable CSS transitions for the paper element.
144 */
145 transitionEnabled: _propTypes2.default.bool,
146 /**
147 * This number represents the zDepth of the paper shadow.
148 */
149 zDepth: _propTypes4.default.zDepth
150} : {};
151exports.default = Paper;
\No newline at end of file