{"version":3,"file":"Root.mjs","names":["React","assignProps","useForkRef","createRootRender","Root","forwardRef","_ref","ref","Tag","render","source","_objectWithoutProperties","_excluded","_Root$props","props","_Root","styles","children","Children","_Root$props$forwardRe","_excluded2","clearProps","Object","entries","reduce","_ref2","_ref3","_slicedToArray","name","value","undefined","child","origin","createElement","other","_objectSpread","Error","Fragment","Enhancement","init","asProps","WrapperComponent","isFunction"],"sources":["../../../src/core/enhancement/Root.tsx"],"sourcesContent":["import React from 'react';\nimport assignProps from '../../assignProps';\nimport { useForkRef } from '../../ref';\n\nfunction createRootRender() {\n  // @ts-ignore\n  const Root = React.forwardRef(function ({ render: Tag, ...source }, ref) {\n    const {\n      Root: _Root,\n\n      styles,\n\n      children,\n      Children,\n      forwardRef = null,\n      ...props\n      // @ts-ignore\n    } = Root.props;\n\n    const clearProps = Object.entries(props).reduce((props: any, [name, value]) => {\n      if (value !== undefined) {\n        props[name] = value;\n      }\n      return props;\n    }, {});\n\n    const child = {};\n    // TODO: need to find better check solution (by lsroman)\n    if (typeof Children.origin !== 'undefined') {\n      // @ts-ignore\n      child.children = <Children />;\n    }\n\n    const other = assignProps(\n      {\n        ...clearProps,\n        ref: useForkRef(forwardRef, ref),\n      },\n      {\n        ...child,\n        ...source,\n      },\n    );\n    if (!Tag) {\n      throw new Error('`render` prop of Root is not provided');\n    }\n    if (Tag === React.Fragment) return <React.Fragment>{other.children}</React.Fragment>;\n\n    return <Tag {...other} />;\n  });\n  // @ts-ignore\n  Root.props = {};\n  return Root;\n}\n\nfunction Enhancement() {\n  return {\n    init: function (this: any) {\n      this.Root = createRootRender();\n    },\n    asProps: function (this: any, props: any, WrapperComponent: any, isFunction: boolean) {\n      if (isFunction) {\n        return {\n          ...props,\n          Root: this.Root,\n        };\n      }\n      return props;\n    },\n    render: function (this: any, render: any, props: any) {\n      this.Root.props = props;\n      return render;\n    },\n  };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}