UNPKG

@roo-ui/components

Version:

34 lines (24 loc) 1.74 kB
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } 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; } import isPropValid from '@emotion/is-prop-valid'; import { VALID_STYLED_SYSTEM_PROPS } from './constants'; var toTrueHash = function toTrueHash(arrayOfStrings) { return arrayOfStrings.reduce(function (acc, key) { return _objectSpread({}, acc, _defineProperty({}, key, true)); }, {}); }; var styledSystemProps = toTrueHash(VALID_STYLED_SYSTEM_PROPS); var omitProps = function omitProps() { var customPropsList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$omitStyledSystem = _ref.omitStyledSystemProps, omitStyledSystemProps = _ref$omitStyledSystem === void 0 ? true : _ref$omitStyledSystem; var customProps = toTrueHash(customPropsList); var shouldForwardProp = function shouldForwardProp(prop) { return isPropValid(prop) && !customProps[prop] && !(omitStyledSystemProps && styledSystemProps[prop]); }; return { shouldForwardProp: shouldForwardProp }; }; export default omitProps;