UNPKG

rsuite

Version:

A suite of react components

51 lines (46 loc) 1.53 kB
'use client'; "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.omitBoxProps = exports.extractBoxProps = void 0; var _camelCase = _interopRequireDefault(require("lodash/camelCase")); var _cssAlias = require("../styled-system/css-alias"); var _cssProperties = require("../styled-system/css-properties"); const boxPropKeys = new Set(_cssProperties.supportedCSSProperties); Object.entries(_cssAlias.cssSystemPropAlias).forEach(([key, prop]) => { boxPropKeys.add(key); boxPropKeys.add((0, _camelCase.default)(prop.property)); }); const isBoxProp = key => boxPropKeys.has(key); /** * Extract box properties from props * @param props Original props object * @returns Object containing only box properties */ const extractBoxProps = props => { const boxProps = {}; // Extract only box related properties Object.keys(props).forEach(key => { if (isBoxProp(key) && props[key] !== undefined) { boxProps[key] = props[key]; } }); return boxProps; }; /** * Filter out layout properties from props * @param props Original props object * @returns New object without layout properties */ exports.extractBoxProps = extractBoxProps; const omitBoxProps = props => { const filteredProps = {}; // Copy all properties except box related ones Object.keys(props).forEach(key => { if (!isBoxProp(key)) { filteredProps[key] = props[key]; } }); return filteredProps; }; exports.omitBoxProps = omitBoxProps;