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
JavaScript
'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);