sophia-components
Version:
Sophia React Components based on bulma.io
103 lines (73 loc) • 5.61 kB
JavaScript
;
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;