{"version":3,"file":"index.mjs","names":["React","hoistNonReactStatics","useForkRef","useEnhancedEffect","_assignProps","Component","register","childrenEnhancement","CHILDREN_COMPONENT","rootEnhancement","uncontrolledPropsEnhancement","functionDefaultPropsEnhancement","staticChildrenEnhancement","STATIC_COMPONENT","ROOT_COMPONENT","getterMethodNameByDisplayName","inheritedNameEnhancement","INHERITED_NAME","hoistPropsEnhancement","dataNameEnhancement","enhanceEnhancement","styleEnhancement","bindHandlerEnhancement","i18nAppLocaleEnhance","CORE_AS_PROPS","CORE_INIT","PARENT_COMPONENTS","CORE_INSTANCE","CORE_COMPONENT","CREATE_COMPONENT","CONTEXT_COMPONENT","isEmptyObject","obj","Object","getOwnPropertyNames","length","getOwnPropertySymbols","getPrototypeOf","prototype","createGetField","enhancements","isFunction","getField","key","filter","enhancement","condition","reduce","acc","item","push","createForwardWrapper","wrapperProps","statics","RootComponent","getterMethodName","displayName","getterMethod","undefined","useGetterIndex","WrapperForwardRefWithBind","_ref","ref","_ref$forwardRef","forwardRef","other","_objectWithoutProperties","_excluded","createElement","BindingWrapper","_extends","WrapperForwardRef","_ref2","_ref2$forwardRef","__WRAPPER_PROPS_BIND__","_excluded2","_reduce","WrapperComponent","_reduce$ref","enhancementRef","props","_excluded3","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","_createClass","value","render","_this2","map","fn","bind","defaultProps","forEach","assign","wrapClass","OriginComponent","Context","inits","renders","contexts","_OriginComponent2","_super2","context","_this3","get","_this4","Error","setContext","_this5","contextProps","_get","_getPrototypeOf","_this6","asProps","ctx","Provider","_objectSpread","wrapFunction","memo","FunctionMemoComponent","selfRef","useRef","firstRender","current","wrapCore","_ref3","Root","createComposeComponent","PureComponent","isPrototypeOf","assignProps","p1","p2","createComponent","childComponents","options","_options$context","createContext","_options$parent","parent","_options$enhancements","parents","isArray","wholeFamily","_toConsumableArray","f","_______childrenComponents","_OriginComponent","_childComponents","_options","createBaseComponent"],"sources":["../../src/core/index.tsx"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nimport { useForkRef } from '../ref';\nimport useEnhancedEffect from '../use/useEnhancedEffect';\nimport _assignProps from '../assignProps';\n\nimport {\n  Component,\n  PropsWithRenderFnChildren,\n  wrapIntergalacticComponent,\n} from './types/Component';\nimport register from './register';\n\nimport childrenEnhancement, { CHILDREN_COMPONENT } from './enhancement/Children';\nimport rootEnhancement from './enhancement/Root';\nimport uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';\nimport functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';\nimport staticChildrenEnhancement, {\n  STATIC_COMPONENT,\n  ROOT_COMPONENT,\n  getterMethodNameByDisplayName,\n} from './enhancement/staticChildren';\nimport inheritedNameEnhancement, { INHERITED_NAME } from './enhancement/inheritedName';\nimport hoistPropsEnhancement from './enhancement/hoistProps';\nimport dataNameEnhancement from './enhancement/dataName';\nimport enhanceEnhancement from './enhancement/enhance';\nimport styleEnhancement from './enhancement/style';\nimport bindHandlerEnhancement from './enhancement/bindHandler';\nimport i18nAppLocaleEnhance from './enhancement/i18n';\nimport {\n  CORE_AS_PROPS,\n  CORE_INIT,\n  PARENT_COMPONENTS,\n  CORE_INSTANCE,\n  CORE_COMPONENT,\n  CREATE_COMPONENT,\n  CONTEXT_COMPONENT,\n} from './types/symbols';\n\nfunction isEmptyObject(obj: any) {\n  return (\n    Object.getOwnPropertyNames(obj).length === 0 &&\n    Object.getOwnPropertySymbols && // For IE 11\n    Object.getOwnPropertySymbols(obj).length === 0 &&\n    Object.getPrototypeOf(obj) === Object.prototype\n  );\n}\n\nfunction createGetField(enhancements: any, Component: any, isFunction: boolean) {\n  return function getField(key: string) {\n    return enhancements\n      .filter((enhancement: any) => {\n        if (!enhancement.condition) {\n          return true;\n        }\n        return enhancement.condition(Component, isFunction);\n      })\n      .reduce((acc: any, item: any) => {\n        if (item[key]) {\n          acc.push(item[key]);\n        }\n        return acc;\n      }, []);\n  };\n}\n\nfunction createForwardWrapper(Component: any, wrapperProps: any, statics: any, isFunction: any) {\n  const RootComponent = Component[ROOT_COMPONENT];\n  const getterMethodName = getterMethodNameByDisplayName(Component?.displayName);\n  const getterMethod = RootComponent?.prototype\n    ? RootComponent.prototype[getterMethodName]\n    : undefined;\n  const useGetterIndex = getterMethod?.length >= 2;\n\n  function WrapperForwardRefWithBind({ forwardRef = null, ...other }, ref: any) {\n    return <BindingWrapper {...other} forwardRef={useForkRef(ref, forwardRef)} />;\n  }\n\n  function WrapperForwardRef(\n    { forwardRef = null, __WRAPPER_PROPS_BIND__, ...other }: any,\n    ref: any,\n  ) {\n    const { ref: enhancementRef = null, ...props } = (\n      __WRAPPER_PROPS_BIND__ || wrapperProps\n    ).reduce((acc: any, enhancement: any) => enhancement(acc, WrapperComponent, isFunction), other);\n    return <Component {...props} forwardRef={useForkRef(enhancementRef, ref, forwardRef)} />;\n  }\n\n  class BindingWrapper extends React.Component<any> {\n    index = -1;\n    render() {\n      return (\n        <WrapperForwardRef\n          {...this.props}\n          __WRAPPER_PROPS_BIND__={wrapperProps.map((fn: any) => fn.bind(this))}\n        />\n      );\n    }\n  }\n\n  const WrapperComponent = React.forwardRef(\n    useGetterIndex ? WrapperForwardRefWithBind : WrapperForwardRef,\n  );\n\n  hoistNonReactStatics(WrapperComponent, Component);\n\n  WrapperComponent.displayName = Component.displayName;\n  // TODO: defaultProps is only empty\n  WrapperComponent.defaultProps = Component.defaultProps;\n  // STATIC\n  statics.forEach((enhancement: any) =>\n    Object.assign(WrapperComponent, enhancement(WrapperComponent, Component, isFunction)),\n  );\n\n  return WrapperComponent;\n}\n\nfunction wrapClass(OriginComponent: any, enhancements: any, Context: any) {\n  const getField = createGetField(enhancements, OriginComponent, false);\n\n  const inits = getField('init');\n  const props = getField('asProps');\n  const renders = getField('render');\n  const statics = getField('static');\n  const wrapperProps = getField('wrapperProps');\n  const contexts = getField('context');\n\n  class Component extends OriginComponent {\n    [CORE_AS_PROPS] = null;\n    [CORE_INSTANCE] = WrapperComponent;\n    [CORE_INIT] = false;\n\n    constructor(props: any, context: any) {\n      super(props, context);\n      // INITS\n      inits.forEach((enhancement: any) => enhancement.call(this, props, WrapperComponent, false));\n      this[CORE_INIT] = true;\n    }\n\n    get asProps() {\n      // TODO if not production\n      if (!this[CORE_INIT]) {\n        throw new Error('Can not call asProps in constructor');\n      }\n      if (!this[CORE_AS_PROPS]) {\n        // PROPS\n        this[CORE_AS_PROPS] = props.reduce(\n          (acc: any, enhancement: any) => enhancement.call(this, acc, WrapperComponent, false),\n          this.props,\n        );\n      }\n      return this[CORE_AS_PROPS];\n    }\n\n    setContext() {\n      const contextProps = super.setContext ? super.setContext() : {};\n      // CONTEXT\n      return contexts.reduce(\n        (acc: any, enhancement: any) => enhancement.call(this, acc, WrapperComponent, false),\n        contextProps,\n      );\n    }\n\n    render() {\n      this[CORE_AS_PROPS] = null;\n      // TODO if not production\n      if (!super.render) {\n        throw new Error('Component `render` method is not defined');\n      }\n      const asProps: any = this.asProps;\n      const ctx = this.setContext();\n      // RENDER\n      const render = renders.reduce(\n        (acc: any, enhancement: any) =>\n          enhancement.call(this, acc, asProps, WrapperComponent, false),\n        super.render(),\n      );\n      if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n        return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n      } else {\n        return render;\n      }\n    }\n  }\n\n  const WrapperComponent: any = createForwardWrapper(Component, wrapperProps, statics, false);\n  return WrapperComponent;\n}\n\nfunction wrapFunction(OriginComponent: any, enhancements: any, Context: any) {\n  const getField = createGetField(enhancements, OriginComponent, true);\n\n  const inits = getField('init');\n  const props = getField('asProps');\n  const renders = getField('render');\n  const statics = getField('static');\n  const wrapperProps = getField('wrapperProps');\n  const contexts = getField('context');\n\n  const Component = React.memo(function FunctionMemoComponent(other) {\n    const selfRef = React.useRef({});\n    const firstRender = React.useRef(true);\n    useEnhancedEffect(() => {\n      firstRender.current = false;\n    }, []);\n    if (firstRender.current) {\n      // INITS\n      inits.forEach((enhancement: any) =>\n        enhancement.call(selfRef.current, other, WrapperComponent, true),\n      );\n    }\n    // PROPS\n    const asProps = props.reduce(\n      (acc: any, enhancement: any) =>\n        enhancement.call(selfRef.current, acc, WrapperComponent, true),\n      other,\n    );\n    // CONTEXT\n    const ctx = contexts.reduce(\n      (acc: any, enhancement: any) =>\n        enhancement.call(selfRef.current, acc, WrapperComponent, true),\n      {},\n    );\n\n    // RENDER\n    const render = renders.reduce(\n      (acc: any, enhancement: any) =>\n        enhancement.call(selfRef.current, acc, asProps, WrapperComponent, true),\n      <OriginComponent {...asProps} />,\n    );\n\n    if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n      return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n    } else {\n      return render;\n    }\n  });\n  Object.assign(Component, OriginComponent);\n  const WrapperComponent: any = createForwardWrapper(Component, wrapperProps, statics, true);\n  return WrapperComponent;\n}\n\nfunction wrapCore(OriginComponent: any, enhancements: any, Context: any) {\n  const Component = function ({ Root }: any) {\n    const defaultProps = OriginComponent.defaultProps || {};\n    return <Root {...defaultProps} render={OriginComponent} />;\n  };\n  hoistNonReactStatics(Component, OriginComponent);\n  Component.displayName = OriginComponent.displayName;\n  return wrapFunction(Component, enhancements, Context);\n}\n\nfunction createComposeComponent(OriginComponent: any, Context: any, enhancements: any): any {\n  if (\n    React.PureComponent.isPrototypeOf(OriginComponent) ||\n    React.Component.isPrototypeOf(OriginComponent)\n  ) {\n    if (OriginComponent.prototype instanceof Component) {\n      return wrapClass(OriginComponent, enhancements, Context);\n    } else {\n      throw new Error('Must inherit from our component');\n    }\n  } else if (typeof OriginComponent === 'function') {\n    return wrapFunction(OriginComponent, enhancements, Context);\n  } else if (OriginComponent[CORE_COMPONENT]) {\n    return wrapCore(OriginComponent, enhancements, Context);\n  } else {\n    throw new Error('Must be a React component');\n  }\n}\n\nexport type PropsAndRef<T, Ctx, UCProps> = PropsWithRenderFnChildren<T, Ctx, UCProps> &\n  RefAttributes<unknown>;\nexport type ForwardRefComponent<T, Ctx, UCProps> = ForwardRefExoticComponent<\n  PropsAndRef<T, Ctx, UCProps>\n>;\ntype ComponentOrProps<T, Context, UCProps> = T extends [infer ParentProps, infer ChildProps]\n  ? ComponentType<ParentProps, ChildProps, Context, UCProps>\n  : ForwardRefComponent<T, Context, UCProps>;\n\nexport type ComponentType<\n  ComponentProps,\n  ChildComponentProps = {},\n  ContextType = {},\n  UCProps = {},\n  FNType = null,\n> = (FNType extends null\n  ? ForwardRefComponent<ComponentProps, ContextType, UCProps>\n  : FNType & { displayName: string }) & {\n  [K in keyof ChildComponentProps]: ComponentOrProps<ChildComponentProps[K], ContextType, UCProps>;\n} & {\n  [CORE_COMPONENT]: boolean;\n  [CREATE_COMPONENT]: () => ComponentType<\n    ComponentProps,\n    ChildComponentProps,\n    ContextType,\n    UCProps\n  >;\n};\n\ninterface ClassWithUncontrolledProps<Props> {\n  uncontrolledProps(): unknown;\n}\n\nfunction assignProps(p1: any, p2: any) {\n  return _assignProps(p2, p1);\n}\n\nfunction createComponent<ComponentProps, ChildComponentProps = {}, ContextType = {}, FNType = null>(\n  OriginComponent: any,\n  childComponents: any = {},\n  options: {\n    context?: React.Context<ContextType>;\n    parent?: ComponentType<unknown> | ComponentType<unknown>[];\n    enhancements?: [any];\n  } = {},\n): ComponentType<\n  ComponentProps extends Component<infer Props> ? Props : ComponentProps,\n  ChildComponentProps,\n  ContextType,\n  ComponentProps extends ClassWithUncontrolledProps<any>\n    ? ReturnType<ComponentProps['uncontrolledProps']>\n    : { [key: string]: (arg: unknown) => void },\n  FNType\n> {\n  const {\n    context = React.createContext<ContextType>({} as ContextType),\n    parent = [],\n    enhancements = [],\n  } = options;\n  let parents = Array.isArray(parent) ? parent : [parent];\n  if (parents.length) {\n    const wholeFamily = parents.reduce((acc: any, parent: any) => {\n      if (parent[PARENT_COMPONENTS]) {\n        acc = [...parent[PARENT_COMPONENTS], ...acc];\n      }\n      return acc;\n    }, parents);\n    OriginComponent[PARENT_COMPONENTS] = wholeFamily;\n    parents = wholeFamily;\n  }\n  if (OriginComponent[CORE_COMPONENT]) {\n    parents.push(OriginComponent);\n  }\n  const Component = createComposeComponent(OriginComponent, context, [\n    // @ts-ignore\n    ...enhancements.map((f) => f(context, parents, createComponent, childComponents)),\n    i18nAppLocaleEnhance(),\n    bindHandlerEnhancement(),\n    childrenEnhancement(context, parents),\n    // root must be under the children\n    rootEnhancement(),\n    uncontrolledPropsEnhancement(),\n    staticChildrenEnhancement(childComponents, createComponent, {\n      context,\n      parent,\n      enhancements,\n    }),\n    // functionDefaultProps must be under the staticChild\n    functionDefaultPropsEnhancement(),\n    // inheritedName must be under the staticChild\n    inheritedNameEnhancement(),\n    // dataName must be under the staticChild\n    dataNameEnhancement(),\n    // enhanceEnhancement must be under the functionDefaultPropsEnhancement\n    enhanceEnhancement(),\n    styleEnhancement(childComponents, context),\n    // must be the last one so any properties can be raised\n    hoistPropsEnhancement(childComponents, context),\n  ]);\n  Component[CONTEXT_COMPONENT] = context;\n  Component._______childrenComponents = childComponents;\n  Component[CREATE_COMPONENT] = function (\n    _OriginComponent = OriginComponent,\n    _childComponents = childComponents,\n    _options = options,\n  ) {\n    return createComponent(_OriginComponent, _childComponents, _options);\n  };\n  Component[CORE_COMPONENT] = true;\n  return Component;\n}\n\nfunction createBaseComponent<ComponentProps>(OriginComponent: any): ComponentType<ComponentProps> {\n  let Component = null;\n  if (\n    !React.PureComponent.isPrototypeOf(OriginComponent) &&\n    !React.Component.isPrototypeOf(OriginComponent) &&\n    typeof OriginComponent === 'function'\n  ) {\n    Component = React.forwardRef(OriginComponent);\n    Component.displayName = OriginComponent.displayName;\n    Component.defaultProps = {\n      'data-ui-name': OriginComponent.displayName,\n      ...OriginComponent.defaultProps,\n    };\n    (Component as any)[CORE_COMPONENT] = true;\n  } else {\n    throw new Error('createBaseComponent accepts only functional component');\n  }\n  return Component as any;\n}\n\nexport * from './types/index';\nexport * from './styled/index';\nexport * from './register';\nexport {\n  createBaseComponent,\n  register,\n  CREATE_COMPONENT,\n  CORE_INSTANCE,\n  CONTEXT_COMPONENT,\n  CHILDREN_COMPONENT,\n  INHERITED_NAME,\n  CORE_COMPONENT,\n  STATIC_COMPONENT,\n  ROOT_COMPONENT,\n  assignProps,\n};\n\nexport default createComponent;\n"],"mappings":"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"}