Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

117 строки
2.9 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _simpleAssign = require('simple-assign');
  6. var _simpleAssign2 = _interopRequireDefault(_simpleAssign);
  7. var _react = require('react');
  8. var _react2 = _interopRequireDefault(_react);
  9. var _propTypes = require('prop-types');
  10. var _propTypes2 = _interopRequireDefault(_propTypes);
  11. var _transitions = require('../styles/transitions');
  12. var _transitions2 = _interopRequireDefault(_transitions);
  13. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  14. function getStyles(props) {
  15. var defaultStyles = {
  16. position: 'absolute',
  17. lineHeight: '22px',
  18. top: 38,
  19. transition: _transitions2.default.easeOut(),
  20. zIndex: 1, // Needed to display label above Chrome's autocomplete field background
  21. transform: 'scale(1) translate(0, 0)',
  22. transformOrigin: 'left top',
  23. pointerEvents: 'auto',
  24. userSelect: 'none'
  25. };
  26. var shrinkStyles = props.shrink ? (0, _simpleAssign2.default)({
  27. transform: 'scale(0.75) translate(0, -28px)',
  28. pointerEvents: 'none'
  29. }, props.shrinkStyle) : null;
  30. return {
  31. root: (0, _simpleAssign2.default)(defaultStyles, props.style, shrinkStyles)
  32. };
  33. }
  34. var TextFieldLabel = function TextFieldLabel(props) {
  35. var muiTheme = props.muiTheme,
  36. className = props.className,
  37. children = props.children,
  38. htmlFor = props.htmlFor,
  39. onClick = props.onClick;
  40. var prepareStyles = muiTheme.prepareStyles;
  41. var styles = getStyles(props);
  42. return _react2.default.createElement(
  43. 'label',
  44. {
  45. className: className,
  46. style: prepareStyles(styles.root),
  47. htmlFor: htmlFor,
  48. onClick: onClick
  49. },
  50. children
  51. );
  52. };
  53. TextFieldLabel.propTypes = process.env.NODE_ENV !== "production" ? {
  54. /**
  55. * The label contents.
  56. */
  57. children: _propTypes2.default.node,
  58. /**
  59. * The css class name of the root element.
  60. */
  61. className: _propTypes2.default.string,
  62. /**
  63. * Disables the label if set to true.
  64. */
  65. disabled: _propTypes2.default.bool,
  66. /**
  67. * The id of the target element that this label should refer to.
  68. */
  69. htmlFor: _propTypes2.default.string,
  70. /**
  71. * @ignore
  72. * The material-ui theme applied to this component.
  73. */
  74. muiTheme: _propTypes2.default.object.isRequired,
  75. /**
  76. * Callback function for when the label is selected via a click.
  77. *
  78. * @param {object} event Click event targeting the text field label.
  79. */
  80. onClick: _propTypes2.default.func,
  81. /**
  82. * True if the floating label should shrink.
  83. */
  84. shrink: _propTypes2.default.bool,
  85. /**
  86. * Override the inline-styles of the root element when shrunk.
  87. */
  88. shrinkStyle: _propTypes2.default.object,
  89. /**
  90. * Override the inline-styles of the root element.
  91. */
  92. style: _propTypes2.default.object
  93. } : {};
  94. TextFieldLabel.defaultProps = {
  95. disabled: false,
  96. shrink: false
  97. };
  98. exports.default = TextFieldLabel;