UNPKG

@bootstrap-styled/rsg-components

Version:

Create documentation layouts for your react-styleguidist using Bootstrap-Styled rsg-component. Boostrap Styled rsg-components use the @bootstrap-styled/v4 for recreating the original rsg-components.

159 lines (131 loc) 5.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.propTypes = exports.defaultProps = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _breakpoints = _interopRequireDefault(require("@bootstrap-styled/css-mixins/lib/breakpoints")); var _Img = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Img")); var _Footer = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Footer")); var _A = _interopRequireDefault(require("@bootstrap-styled/v4/lib/A")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _lodash = _interopRequireDefault(require("lodash.omit")); var _classnames = _interopRequireDefault(require("classnames")); var _lib = _interopRequireDefault(require("map-to-css-modules/lib")); var defaultProps = { logo: { text: null, logo: null, href: 'https://bootstrap-styled.github.io/rsg-components', target: '_blank', alt: '@bootstrap-styled/rsg-components', height: null, width: null }, theme: { styleguide: { '$rsg-footer-margin': '40px 0 60px 0', '$rsg-footer-float': 'right', '$rsg-footer-img-height': { xs: '35px', md: '43px' } } } }; exports.defaultProps = defaultProps; var propTypes = { /** * @ignore */ className: _propTypes.default.string, // eslint-disable-line react/require-default-props /** Logo attributes in order to render logo. */ logo: _propTypes.default.shape({ /** Text to be displayed with/instead the logo */ text: _propTypes.default.string, /** webpack loaded images or <img /> directly */ logo: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]), /** link for the logo */ href: _propTypes.default.string, /** link target */ target: _propTypes.default.string, /** alternative text for the logo */ alt: _propTypes.default.string, height: _propTypes.default.any, width: _propTypes.default.any }), /** bootstrap styled theme */ theme: _propTypes.default.shape({ /** bootstrap styled scope for our variables */ styleguide: _propTypes.default.shape({ '$rsg-footer-margin': _propTypes.default.string, '$rsg-footer-float': _propTypes.default.string, '$rsg-footer-img-height': _propTypes.default.shape({ xs: _propTypes.default.string, md: _propTypes.default.string }) }) }), /** * Replace or remove a className from the component. * See example <a href="https://www.npmjs.com/package/map-to-css-modules" target="_blank">here</a>. */ cssModule: _propTypes.default.object // eslint-disable-line react/require-default-props }; /** * The FooterRenderer gives you a few way to customize it * @param props * @returns {*} * @constructor */ exports.propTypes = propTypes; var FooterRendererUnstyled = function FooterRendererUnstyled(props) { var _omit = (0, _lodash.default)(props, ['theme']), className = _omit.className, logoObject = _omit.logo, cssModule = _omit.cssModule, attributes = (0, _objectWithoutProperties2.default)(_omit, ["className", "logo", "cssModule"]); var logo = logoObject.logo, href = logoObject.href, target = logoObject.target, alt = logoObject.alt, text = logoObject.text, height = logoObject.height, width = logoObject.width, restLogo = (0, _objectWithoutProperties2.default)(logoObject, ["logo", "href", "target", "alt", "text", "height", "width"]); return _react.default.createElement(_Footer.default, (0, _extends2.default)({ className: (0, _lib.default)((0, _classnames.default)(className, 'rsg-footer', cssModule)) }, attributes), text && _react.default.createElement("span", null, text), typeof logo === 'string' && _react.default.createElement(_A.default, { href: href, target: target, alt: alt }, _react.default.createElement(_Img.default, (0, _extends2.default)({ className: "rsg-footer-img", src: logo, height: height, width: width, alt: alt }, restLogo))), typeof logo !== 'string' && logo && _react.default.createElement(_A.default, (0, _extends2.default)({ href: href, target: target, alt: alt }, restLogo), logo)); }; FooterRendererUnstyled.defaultProps = defaultProps; FooterRendererUnstyled.propTypes = propTypes; var FooterRenderer = (0, _styledComponents.default)(FooterRendererUnstyled).withConfig({ displayName: "FooterRenderer", componentId: "sc-1pc9gyg-0" })(["", ""], function (props) { return "\n &.rsg-footer {\n margin: ".concat(props.theme.styleguide['$rsg-footer-margin'], ";\n float: ").concat(props.theme.styleguide['$rsg-footer-float'], ";\n & .rsg-footer-img {\n ").concat(_breakpoints.default.up('xs', props.theme['$grid-breakpoints'], "\n height: ".concat(props.theme.styleguide['$rsg-footer-img-height'].xs, ";\n ")), "\n ").concat(_breakpoints.default.up('md', props.theme['$grid-breakpoints'], "\n height: ".concat(props.theme.styleguide['$rsg-footer-img-height'].md, ";\n ")), "\n }\n }\n "); }); FooterRenderer.defaultProps = defaultProps; FooterRenderer.propTypes = propTypes; /** @component */ var _default = FooterRenderer; exports.default = _default;