UNPKG

@front10/landing-page-book

Version:
316 lines (286 loc) 15.7 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var withStyles = function withStyles(WrappedComponent) { var defaultProps = WrappedComponent ? WrappedComponent.defaultProps : {}; var Styled = function (_Component) { _inherits(Styled, _Component); function Styled() { _classCallCheck(this, Styled); return _possibleConstructorReturn(this, (Styled.__proto__ || Object.getPrototypeOf(Styled)).apply(this, arguments)); } _createClass(Styled, [{ key: 'getLayoutBasedStyles', value: function getLayoutBasedStyles() { var _props = this.props, marginRight = _props.marginRight, marginLeft = _props.marginLeft, marginTop = _props.marginTop, marginBottom = _props.marginBottom, margin = _props.margin, paddingRight = _props.paddingRight, paddingLeft = _props.paddingLeft, paddingTop = _props.paddingTop, paddingBottom = _props.paddingBottom, padding = _props.padding; var layoutClasses = ''; if (margin) layoutClasses = Styled.mapper(layoutClasses, 'm-' + margin); if (marginRight) layoutClasses = Styled.mapper(layoutClasses, 'mr-' + marginRight); if (marginLeft) layoutClasses = Styled.mapper(layoutClasses, 'ml-' + marginLeft); if (marginTop) layoutClasses = Styled.mapper(layoutClasses, 'mt-' + marginTop); if (marginBottom) layoutClasses = Styled.mapper(layoutClasses, 'mb-' + marginBottom); if (padding) layoutClasses = Styled.mapper(layoutClasses, 'p-' + padding); if (paddingRight) layoutClasses = Styled.mapper(layoutClasses, 'pr-' + paddingRight); if (paddingLeft) layoutClasses = Styled.mapper(layoutClasses, 'pl-' + paddingLeft); if (paddingTop) layoutClasses = Styled.mapper(layoutClasses, 'pt-' + paddingTop); if (paddingBottom) layoutClasses = Styled.mapper(layoutClasses, 'pb-' + paddingBottom); return layoutClasses; } }, { key: 'getColorBasedStyles', value: function getColorBasedStyles() { var _props2 = this.props, bgColor = _props2.bgColor, textColor = _props2.textColor; var colorBasedClasses = ''; if (bgColor) colorBasedClasses = Styled.mapper(colorBasedClasses, 'bg-' + bgColor); if (textColor) colorBasedClasses = Styled.mapper(colorBasedClasses, 'text-' + textColor); return colorBasedClasses; } }, { key: 'getBorderBasedStyles', value: function getBorderBasedStyles() { var _props3 = this.props, border = _props3.border, borderTop = _props3.borderTop, borderRight = _props3.borderRight, borderBottom = _props3.borderBottom, borderLeft = _props3.borderLeft, borderNone = _props3.borderNone; var borderBasedClasses = ''; if (border) borderBasedClasses = Styled.mapper(borderBasedClasses, 'border'); if (borderTop) borderBasedClasses = Styled.mapper(borderBasedClasses, 'border-top'); if (borderRight) borderBasedClasses = Styled.mapper(borderBasedClasses, 'border-right'); if (borderBottom) borderBasedClasses = Styled.mapper(borderBasedClasses, 'border-bottom'); if (borderLeft) borderBasedClasses = Styled.mapper(borderBasedClasses, 'border-left'); if (borderNone) borderBasedClasses = Styled.mapper(borderBasedClasses, 'border-0'); return borderBasedClasses; } }, { key: 'getTextBasedStyles', value: function getTextBasedStyles() { var _props4 = this.props, textAlign = _props4.textAlign, textTransform = _props4.textTransform, textTruncate = _props4.textTruncate, fontItalic = _props4.fontItalic, fontWeight = _props4.fontWeight, textMonoSpace = _props4.textMonoSpace, fontSize = _props4.fontSize, fontSizeSm = _props4.fontSizeSm, fontSizeMd = _props4.fontSizeMd, fontSizeLg = _props4.fontSizeLg, fontSizeXlg = _props4.fontSizeXlg; var textAlignBasedClasses = ''; if (textAlign) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'text-' + textAlign); if (textTransform) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'text-' + textTransform); if (textTruncate) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'text-truncate'); if (fontItalic) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'font-italic'); if (fontWeight) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'font-weight-' + fontWeight); if (textMonoSpace) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'text-monospace'); if (fontSize) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'fr-font-size-' + fontSize + '-x'); if (fontSizeSm) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'fr-font-size-sm-' + fontSizeSm + '-x'); if (fontSizeMd) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'fr-font-size-md-' + fontSizeMd + '-x'); if (fontSizeLg) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'fr-font-size-lg-' + fontSizeLg + '-x'); if (fontSizeXlg) textAlignBasedClasses = Styled.mapper(textAlignBasedClasses, 'fr-font-size-xlg-' + fontSizeXlg + '-x'); return textAlignBasedClasses; } }, { key: 'getRoundedBasedStyles', value: function getRoundedBasedStyles() { var _props5 = this.props, rounded = _props5.rounded, roundedRight = _props5.roundedRight, roundedLeft = _props5.roundedLeft, roundedTop = _props5.roundedTop, roundedBottom = _props5.roundedBottom, roundedCircle = _props5.roundedCircle, roundedNone = _props5.roundedNone; var roundedBasedClasses = ''; if (rounded) roundedBasedClasses = Styled.mapper(roundedBasedClasses, 'rounded'); if (roundedTop) roundedBasedClasses = Styled.mapper(roundedBasedClasses, 'rounded-top'); if (roundedRight) roundedBasedClasses = Styled.mapper(roundedBasedClasses, 'rounded-right'); if (roundedBottom) roundedBasedClasses = Styled.mapper(roundedBasedClasses, 'rounded-bottom'); if (roundedLeft) roundedBasedClasses = Styled.mapper(roundedBasedClasses, 'rounded-left'); if (roundedCircle) roundedBasedClasses = Styled.mapper(roundedBasedClasses, 'rounded-circle'); if (roundedNone) roundedBasedClasses = Styled.mapper(roundedBasedClasses, 'rounded-0'); return roundedBasedClasses; } }, { key: 'getFloatBasedStyles', value: function getFloatBasedStyles() { var _props6 = this.props, floatLeft = _props6.floatLeft, floatRight = _props6.floatRight, floatNone = _props6.floatNone; var floatBasedClasses = ''; if (floatLeft) floatBasedClasses = Styled.mapper(floatBasedClasses, 'float-left'); if (floatRight) floatBasedClasses = Styled.mapper(floatBasedClasses, 'float-right'); if (floatNone) floatBasedClasses = Styled.mapper(floatBasedClasses, 'float-none'); return floatBasedClasses; } }, { key: 'getFilter', value: function getFilter() { var cssFilter = this.props.cssFilter; return { filter: cssFilter }; } }, { key: 'translatePropsStyles', value: function translatePropsStyles() { var className = this.props.className; var finalClasses = ''; if (className) finalClasses += ' ' + className; var layoutBasedClasses = this.getLayoutBasedStyles(); var colorBasedClasses = this.getColorBasedStyles(); var borderBasedClasses = this.getBorderBasedStyles(); var textBasedClasses = this.getTextBasedStyles(); var roundedBasedClasses = this.getRoundedBasedStyles(); var floatBasedClasses = this.getFloatBasedStyles(); if (layoutBasedClasses) { finalClasses = finalClasses + ' ' + layoutBasedClasses; } if (colorBasedClasses) { finalClasses = finalClasses + ' ' + colorBasedClasses; } if (borderBasedClasses) { finalClasses = finalClasses + ' ' + borderBasedClasses; } if (textBasedClasses) { finalClasses = finalClasses + ' ' + textBasedClasses; } if (roundedBasedClasses) { finalClasses = finalClasses + ' ' + roundedBasedClasses; } if (floatBasedClasses) { finalClasses = finalClasses + ' ' + floatBasedClasses; } return finalClasses; } }, { key: 'render', value: function render() { var className = this.translatePropsStyles(); var style = this.props.style; var newStyles = Object.assign({}, style, this.getFilter()); var props = _extends({}, this.props, { className: className }); return _react2.default.createElement(WrappedComponent, _extends({}, props, { style: newStyles })); } }], [{ key: 'mapper', value: function mapper(clase, prop) { return !clase.includes(prop) ? clase + ' ' + prop : clase; } }]); return Styled; }(_react.Component); Styled.propTypes = { margin: _propTypes2.default.string, marginRight: _propTypes2.default.string, marginLeft: _propTypes2.default.string, marginTop: _propTypes2.default.string, marginBottom: _propTypes2.default.string, padding: _propTypes2.default.string, paddingRight: _propTypes2.default.string, paddingLeft: _propTypes2.default.string, paddingTop: _propTypes2.default.string, paddingBottom: _propTypes2.default.string, rounded: _propTypes2.default.bool, roundedRight: _propTypes2.default.bool, roundedLeft: _propTypes2.default.bool, roundedTop: _propTypes2.default.bool, roundedBottom: _propTypes2.default.bool, roundedCircle: _propTypes2.default.bool, roundedNone: _propTypes2.default.bool, bgColor: _propTypes2.default.string, textColor: _propTypes2.default.string, border: _propTypes2.default.bool, borderTop: _propTypes2.default.bool, borderRight: _propTypes2.default.bool, borderBottom: _propTypes2.default.bool, borderLeft: _propTypes2.default.bool, borderNone: _propTypes2.default.bool, textAlign: _propTypes2.default.oneOf(['center', 'right', 'left', 'justify']), textTransform: _propTypes2.default.oneOf(['lowercase', 'uppercase', 'capitalize', '']), textTruncate: _propTypes2.default.bool, textMonoSpace: _propTypes2.default.bool, fontItalic: _propTypes2.default.bool, fontWeight: _propTypes2.default.oneOf(['bold', 'normal', 'light']), floatLeft: _propTypes2.default.bool, floatRight: _propTypes2.default.bool, floatNone: _propTypes2.default.bool, cssFilter: _propTypes2.default.string, fontSize: _propTypes2.default.oneOf(['1', '2', '3', '4', '5', '6', '7', '8', '9']), fontSizeSm: _propTypes2.default.oneOf(['1', '2', '3', '4', '5', '6', '7', '8', '9']), fontSizeMd: _propTypes2.default.oneOf(['1', '2', '3', '4', '5', '6', '7', '8', '9']), fontSizeLg: _propTypes2.default.oneOf(['1', '2', '3', '4', '5', '6', '7', '8', '9']), fontSizeXlg: _propTypes2.default.oneOf(['1', '2', '3', '4', '5', '6', '7', '8', '9']), style: _propTypes2.default.objectOf(_propTypes2.default.any) }; Styled.defaultProps = { margin: defaultProps.margin || null, marginRight: defaultProps.marginRight || null, marginLeft: defaultProps.marginLeft || null, marginTop: defaultProps.marginTop || null, marginBottom: defaultProps.marginBottom || null, padding: defaultProps.padding || null, paddingRight: defaultProps.paddingRight || null, paddingLeft: defaultProps.paddingLeft || null, paddingTop: defaultProps.paddingTop || null, paddingBottom: defaultProps.paddingBottom || null, rounded: defaultProps.rounded || null, roundedRight: defaultProps.roundedRight || null, roundedLeft: defaultProps.roundedLeft || null, roundedTop: defaultProps.roundedTop || null, roundedBottom: defaultProps.roundedBottom || null, roundedCircle: defaultProps.roundedCircle || null, roundedNone: defaultProps.roundedNone || null, bgColor: defaultProps.bgColor || null, textColor: defaultProps.textColor || null, border: defaultProps.border || null, borderTop: defaultProps.borderTop || null, borderRight: defaultProps.borderRight || null, borderBottom: defaultProps.borderBottom || null, borderLeft: defaultProps.borderLeft || null, borderNone: defaultProps.borderNone || null, textAlign: defaultProps.textAlign || null, textTransform: defaultProps.textTransform || null, textTruncate: defaultProps.textTruncate || null, textMonoSpace: defaultProps.textMonoSpace || null, fontItalic: defaultProps.fontItalic || null, fontWeight: defaultProps.fontWeight || null, floatLeft: defaultProps.floatLeft || null, floatRight: defaultProps.floatRight || null, floatNone: defaultProps.floatNone || null, cssFilter: defaultProps.cssFilter || null, fontSize: defaultProps.fontSize || null, fontSizeSm: defaultProps.fontSizeSm || null, fontSizeMd: defaultProps.fontSizeMd || null, fontSizeLg: defaultProps.fontSizeLg || null, fontSizeXlg: defaultProps.fontSizeXlg || null, style: defaultProps.style || null }; return Styled; }; exports.default = withStyles;