No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

183 líneas
5.4 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _extends2 = require('babel-runtime/helpers/extends');
  6. var _extends3 = _interopRequireDefault(_extends2);
  7. var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
  8. var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
  9. var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
  10. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  11. var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
  12. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  13. var _createClass2 = require('babel-runtime/helpers/createClass');
  14. var _createClass3 = _interopRequireDefault(_createClass2);
  15. var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
  16. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  17. var _inherits2 = require('babel-runtime/helpers/inherits');
  18. var _inherits3 = _interopRequireDefault(_inherits2);
  19. var _simpleAssign = require('simple-assign');
  20. var _simpleAssign2 = _interopRequireDefault(_simpleAssign);
  21. var _react = require('react');
  22. var _react2 = _interopRequireDefault(_react);
  23. var _propTypes = require('prop-types');
  24. var _propTypes2 = _interopRequireDefault(_propTypes);
  25. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  26. function getStyles(props, context) {
  27. var tableRowColumn = context.muiTheme.tableRowColumn;
  28. var styles = {
  29. root: {
  30. paddingLeft: tableRowColumn.spacing,
  31. paddingRight: tableRowColumn.spacing,
  32. height: tableRowColumn.height,
  33. textAlign: 'left',
  34. fontSize: 13,
  35. overflow: 'hidden',
  36. whiteSpace: 'nowrap',
  37. textOverflow: 'ellipsis'
  38. }
  39. };
  40. if (_react2.default.Children.count(props.children) === 1 && !isNaN(props.children)) {
  41. styles.textAlign = 'right';
  42. }
  43. return styles;
  44. }
  45. var TableRowColumn = function (_Component) {
  46. (0, _inherits3.default)(TableRowColumn, _Component);
  47. function TableRowColumn() {
  48. var _ref;
  49. var _temp, _this, _ret;
  50. (0, _classCallCheck3.default)(this, TableRowColumn);
  51. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  52. args[_key] = arguments[_key];
  53. }
  54. return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = TableRowColumn.__proto__ || (0, _getPrototypeOf2.default)(TableRowColumn)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
  55. hovered: false
  56. }, _this.onClick = function (event) {
  57. if (_this.props.onClick) {
  58. _this.props.onClick(event, _this.props.columnNumber);
  59. }
  60. }, _this.onMouseEnter = function (event) {
  61. if (_this.props.hoverable) {
  62. _this.setState({ hovered: true });
  63. if (_this.props.onHover) {
  64. _this.props.onHover(event, _this.props.columnNumber);
  65. }
  66. }
  67. }, _this.onMouseLeave = function (event) {
  68. if (_this.props.hoverable) {
  69. _this.setState({ hovered: false });
  70. if (_this.props.onHoverExit) {
  71. _this.props.onHoverExit(event, _this.props.columnNumber);
  72. }
  73. }
  74. }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
  75. }
  76. (0, _createClass3.default)(TableRowColumn, [{
  77. key: 'render',
  78. value: function render() {
  79. var _props = this.props,
  80. children = _props.children,
  81. className = _props.className,
  82. columnNumber = _props.columnNumber,
  83. hoverable = _props.hoverable,
  84. onClick = _props.onClick,
  85. onHover = _props.onHover,
  86. onHoverExit = _props.onHoverExit,
  87. style = _props.style,
  88. other = (0, _objectWithoutProperties3.default)(_props, ['children', 'className', 'columnNumber', 'hoverable', 'onClick', 'onHover', 'onHoverExit', 'style']);
  89. var prepareStyles = this.context.muiTheme.prepareStyles;
  90. var styles = getStyles(this.props, this.context);
  91. var handlers = {
  92. onClick: this.onClick,
  93. onMouseEnter: this.onMouseEnter,
  94. onMouseLeave: this.onMouseLeave
  95. };
  96. return _react2.default.createElement(
  97. 'td',
  98. (0, _extends3.default)({
  99. className: className,
  100. style: prepareStyles((0, _simpleAssign2.default)(styles.root, style))
  101. }, handlers, other),
  102. children
  103. );
  104. }
  105. }]);
  106. return TableRowColumn;
  107. }(_react.Component);
  108. TableRowColumn.defaultProps = {
  109. hoverable: false
  110. };
  111. TableRowColumn.contextTypes = {
  112. muiTheme: _propTypes2.default.object.isRequired
  113. };
  114. TableRowColumn.propTypes = process.env.NODE_ENV !== "production" ? {
  115. children: _propTypes2.default.node,
  116. /**
  117. * The css class name of the root element.
  118. */
  119. className: _propTypes2.default.string,
  120. /**
  121. * @ignore
  122. * Number to identify the header row. This property
  123. * is automatically populated when used with TableHeader.
  124. */
  125. columnNumber: _propTypes2.default.number,
  126. /**
  127. * @ignore
  128. * If true, this column responds to hover events.
  129. */
  130. hoverable: _propTypes2.default.bool,
  131. /** @ignore */
  132. onClick: _propTypes2.default.func,
  133. /** @ignore */
  134. onHover: _propTypes2.default.func,
  135. /**
  136. * @ignore
  137. * Callback function for hover exit event.
  138. */
  139. onHoverExit: _propTypes2.default.func,
  140. /**
  141. * Override the inline-styles of the root element.
  142. */
  143. style: _propTypes2.default.object
  144. } : {};
  145. exports.default = TableRowColumn;