UNPKG

fk-react-ui-components

Version:

Step 1 : Create a file in [ Seeds / Plants / Trees ] <br> Step 2 : It should export an Object with component name and story Component [Refer other components] <br> Step 3 : Story Component should return a react component <br> Step 3 : Created file should

213 lines (180 loc) 8.95 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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 _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 _templateObject = _taggedTemplateLiteral(['\n position: relative;\n border-bottom: 1px solid ', ';\n overflow: hidden;\n height: ', ';\n line-height: 30px;\n padding: ', ';\n'], ['\n position: relative;\n border-bottom: 1px solid ', ';\n overflow: hidden;\n height: ', ';\n line-height: 30px;\n padding: ', ';\n']), _templateObject2 = _taggedTemplateLiteral(['\n -webkit-box-shadow: ', ';\n -moz-box-shadow: ', ';\n box-shadow: ', ';\n height: ', ';\n line-height: 50px;\n'], ['\n -webkit-box-shadow: ', ';\n -moz-box-shadow: ', ';\n box-shadow: ', ';\n height: ', ';\n line-height: 50px;\n']), _templateObject3 = _taggedTemplateLiteral(['\n font-size: 15px;\n color: ', ';\n'], ['\n font-size: 15px;\n color: ', ';\n']); var _propTypes = require('prop-types'); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactModal = require('react-modal'); var _reactModal2 = _interopRequireDefault(_reactModal); var _styledComponents = require('styled-components'); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _colorCodes = require('../colorCodes'); var _StyleComponents = require('../StyleComponents'); var _StyleComponents2 = _interopRequireDefault(_StyleComponents); 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; } function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var defaultProps = { theme: _extends({}, _colorCodes.guidelineColors) }; var Icon = _StyleComponents2.default.icon; var map = _react2.default.Children.map; var Header = _styledComponents2.default.div(_templateObject, function (props) { return props.theme.border.primary; }, function (props) { return props.height || '40px'; }, function (props) { return props.padding || '6px 30px'; }); Header.defaultProps = defaultProps; var Footer = _styledComponents2.default.div(_templateObject2, function (props) { return props.theme.shadow.primary; }, function (props) { return props.theme.shadow.primary; }, function (props) { return props.theme.shadow.primary; }, function (props) { return props.footerHeight || '65px'; }); Footer.defaultProps = defaultProps; var HeaderText = _styledComponents2.default.div(_templateObject3, function (props) { return props.color || '#545454'; }); var customStyles = { content: { top: '40%', left: '50%', right: 'auto', bottom: 'auto', marginRight: '-50%', transform: 'translate(-50%, -50%)', padding: '0px', width: '450px', overflow: 'visible', boxShadow: defaultProps.theme.shadow.primary, border: '1px solid ' + defaultProps.theme.border.primary } }; var Modal = function (_React$Component) { _inherits(Modal, _React$Component); function Modal() { _classCallCheck(this, Modal); return _possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).apply(this, arguments)); } _createClass(Modal, [{ key: 'computeBody', value: function computeBody() { return map(this.props.children, function (node) { if (node.props.refs === 'body') { return node; } }); } }, { key: 'computeFooter', value: function computeFooter() { return map(this.props.children, function (node) { if (node.props.refs === 'footer') { return node; } }); } }, { key: 'computeHeader', value: function computeHeader() { return map(this.props.children, function (node) { if (node.props.refs === 'header') { return node; } }); } }, { key: 'render', value: function render() { var self = this; return _react2.default.createElement( _reactModal2.default, { isOpen: this.props.modalIsOpen, onRequestClose: this.props.closeModal, style: this.props.customStyles || customStyles }, this.props.isHeader && _react2.default.createElement( Header, { height: this.props.headerHeight, padding: this.props.headerPadding }, _react2.default.createElement( HeaderText, { color: this.props.headerColor }, this.props.headerText ? _react2.default.createElement( 'span', null, this.props.headerText ) : _react2.default.createElement( 'div', null, this.computeHeader() ) ), this.props.isClose ? _react2.default.createElement(Icon, { position: 'absolute', top: self.props.headerTop || '6px', right: '30px', width: '0', height: '0', fontSize: '26px', content: '\'\\00d7\'', onClick: self.props.closeModal, className: 'fa fa-times fa-2x', fontWeight: '900', cursor: 'pointer', color: this.props.theme.text.secondary }) : _react2.default.createElement('span', null) ), this.computeBody(), this.props.isFooter ? _react2.default.createElement( Footer, { footerHeight: self.props.footerHeight }, this.computeFooter() ) : _react2.default.createElement('div', null) ); } }]); return Modal; }(_react2.default.Component); exports.default = Modal; Modal.propTypes = { modalIsOpen: _propTypes.PropTypes.bool, closeModal: _propTypes.PropTypes.func, customStyles: _propTypes.PropTypes.object, headerHeight: _propTypes.PropTypes.string, headerPadding: _propTypes.PropTypes.string, headerColor: _propTypes.PropTypes.string, headerText: _propTypes.PropTypes.string.isRequired, isClose: _propTypes.PropTypes.bool, isHeader: _propTypes.PropTypes.bool, isFooter: _propTypes.PropTypes.bool, children: _propTypes.PropTypes.element }; Modal.defaultProps = _extends({ modalIsOpen: false, closeModal: false, isClose: false, isHeader: true, isFooter: false, headerHeight: '', headerPadding: '', headerColor: '', customStyles: customStyles, children: {} }, defaultProps);