UNPKG

@mui/x-tree-view

Version:

The community edition of the MUI X Tree View components.

60 lines (59 loc) 1.87 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useExtractPluginParamsFromProps = void 0; var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var React = _interopRequireWildcard(require("react")); const _excluded = ["apiRef"]; const useExtractPluginParamsFromProps = _ref => { let { props: { apiRef }, plugins } = _ref, props = (0, _objectWithoutPropertiesLoose2.default)(_ref.props, _excluded); const paramsLookup = React.useMemo(() => { const tempParamsLookup = {}; plugins.forEach(plugin => { Object.assign(tempParamsLookup, plugin.params); }); return tempParamsLookup; }, [plugins]); const { forwardedProps, pluginParams } = React.useMemo(() => { const tempPluginParams = {}; const tempForwardedProps = {}; Object.keys(props).forEach(propName => { const prop = props[propName]; if (paramsLookup[propName]) { tempPluginParams[propName] = prop; } else { tempForwardedProps[propName] = prop; } }); const pluginParamsWithDefaults = plugins.reduce((acc, plugin) => { if (plugin.applyDefaultValuesToParams) { return plugin.applyDefaultValuesToParams({ params: acc }); } return acc; }, tempPluginParams); return { forwardedProps: tempForwardedProps, pluginParams: pluginParamsWithDefaults }; }, [plugins, props, paramsLookup]); return { forwardedProps, pluginParams, apiRef }; }; exports.useExtractPluginParamsFromProps = useExtractPluginParamsFromProps;