UNPKG

sophia-components

Version:
103 lines (73 loc) 5.61 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.buttonsHasKeys = exports.buttonsIsKeys = exports.buttonHasKeys = exports.buttonIsKeys = exports.aligmentKeys = exports.sizeKeys = exports.colorsStateKeys = exports.colorsKeys = exports.helpersHasKeys = exports.helpersIsKeys = exports.hasAcceptStringVal = exports.isAcceptStringVal = exports.columnOffsetIsKeys = exports.columnSizesIsKeys = undefined; 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 _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _helpers = require('../utils/helpers'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /* eslint-disable no-param-reassign */ var columnSizesIsKeys = exports.columnSizesIsKeys = ['half', 'oneFifth', 'twoFifths', 'threeFifths', 'fourFifths', 'oneThird', 'twoThirds', 'oneQuarter', 'threeQuarters']; var columnOffsetIsKeys = exports.columnOffsetIsKeys = columnSizesIsKeys.map(function (size) { return 'offset' + (0, _helpers.capitalizeFirstLetter)(size); }); var isAcceptStringVal = exports.isAcceptStringVal = ['flex', 'inline', 'inlineBlock', 'inlineFlex', 'hidden', 'size', 'half', 'narrow'].concat(columnSizesIsKeys, _toConsumableArray(columnOffsetIsKeys)); var hasAcceptStringVal = exports.hasAcceptStringVal = [ // color text background 'text', 'background', 'textCentered', 'textJustified', 'textLeft', 'textRight', 'textWeight']; var helpersIsKeys = exports.helpersIsKeys = ['clearfix', 'pulledLeft', 'pulledRight', 'marginless', 'paddingless', 'overlay', 'clipped', 'radiusless', 'shadowless', 'unselectable', 'invisible', 'block', 'capitalized', 'lowercase', 'uppercase', 'italic', 'flex', 'inline', 'inlineBlock', 'inlineFlex', 'hidden', 'size']; // All accept strings var helpersHasKeys = exports.helpersHasKeys = [ // color text background 'text', 'background', 'textCentered', 'textJustified', 'textLeft', 'textRight', 'textWeight']; var colorsKeys = exports.colorsKeys = ['white', 'light', 'dark', 'black']; var colorsStateKeys = exports.colorsStateKeys = ['primary', 'link', 'info', 'success', 'warning', 'danger']; var sizeKeys = exports.sizeKeys = ['small', 'medium', 'large']; var aligmentKeys = exports.aligmentKeys = ['centered', 'right', 'left']; var buttonIsKeys = exports.buttonIsKeys = [].concat(helpersIsKeys, colorsKeys, colorsStateKeys, sizeKeys, ['fullwidth', 'outlined', 'inverted', 'rounded', 'hovered', 'focused', 'active', 'loading', 'selected', 'static']); var buttonHasKeys = exports.buttonHasKeys = [].concat(helpersHasKeys); var buttonsIsKeys = exports.buttonsIsKeys = [].concat(helpersIsKeys, aligmentKeys); var buttonsHasKeys = exports.buttonsHasKeys = [].concat(helpersHasKeys, ['addons']); var propTypesReduceFunc = function propTypesReduceFunc() { var acceptString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return function (acum, key) { return _extends({}, acum, _defineProperty({}, key, !acceptString.includes(key) ? _propTypes2.default.bool : _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]))); }; }; var withIsProcessor = function withIsProcessor() { var isKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var hasKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; return function (InnerComponent) { var WithProcessor = function WithProcessor(_props) { var _processor = (0, _helpers.processor)(isKeys, hasKeys, _props), className = _processor.className, props = _processor.props; if (className.length) { return _react2.default.createElement(InnerComponent, _extends({ className: className }, props)); } return _react2.default.createElement(InnerComponent, props); }; WithProcessor.propTypes = _extends({}, InnerComponent.propTypes, isKeys.reduce(propTypesReduceFunc(isAcceptStringVal), {}), hasKeys.reduce(propTypesReduceFunc(hasAcceptStringVal), {}), { is: _propTypes2.default.arrayOf(_propTypes2.default.string), has: _propTypes2.default.arrayOf(_propTypes2.default.string), className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]) }); WithProcessor.defaultProps = _extends({}, InnerComponent.defaultProps, isKeys.reduce(function (acum, key) { return _extends({}, acum, _defineProperty({}, key, null)); }, {}), hasKeys.reduce(function (acum, key) { return _extends({}, acum, _defineProperty({}, key, null)); }, {}), { is: null, has: null, className: [] }); WithProcessor.displayName = InnerComponent.displayName || InnerComponent.name; return WithProcessor; }; }; exports.default = withIsProcessor;