{"version":3,"file":"coreFactory.mjs","names":["hoistNonReactStatics","React","Component","CONTEXT_COMPONENT","CORE_AS_PROPS","CORE_COMPONENT","CORE_INIT","CORE_INSTANCE","CREATE_COMPONENT","PARENT_COMPONENTS","childrenEnhancement","dataNameEnhancement","enhanceEnhancement","functionDefaultPropsEnhancement","i18nAppLocaleEnhance","inheritedNameEnhancement","rootEnhancement","staticChildrenEnhancement","getterMethodNameByDisplayName","ROOT_COMPONENT","STATIC_COMPONENT","styleEnhancement","uncontrolledPropsEnhancement","_assignProps","useForkRef","useEnhancedEffect","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","forwardRef","other","ref","createElement","BindingWrapper","_extends","WrapperForwardRef","__WRAPPER_PROPS_BIND__","enhancementRef","props","WrapperComponent","constructor","args","_defineProperty","render","map","fn","bind","defaultProps","forEach","assign","wrapClass","OriginComponent","Context","inits","renders","contexts","context","call","asProps","Error","prefixesMap","Map","entries","value","prefix","propertyKey","split","get","set","defineProperty","setContext","contextProps","ctx","Provider","wrapFunction","memo","FunctionMemoComponent","selfRef","useRef","firstRender","current","wrapCore","Root","createComposeComponent","PureComponent","isPrototypeOf","assignProps","p1","p2","createComponent","childComponents","options","createContext","parent","parents","Array","isArray","wholeFamily","f","_______childrenComponents","_OriginComponent","_childComponents","_options","newInstance","createBaseComponent"],"sources":["../src/coreFactory.tsx"],"sourcesContent":["import hoistNonReactStatics from 'hoist-non-react-statics';\nimport React from 'react';\n\nimport { type Intergalactic, Component } from './core-types/Component';\nimport {\n  CONTEXT_COMPONENT,\n  CORE_AS_PROPS,\n  CORE_COMPONENT,\n  CORE_INIT,\n  CORE_INSTANCE,\n  CREATE_COMPONENT,\n  PARENT_COMPONENTS,\n} from './core-types/symbols';\nimport childrenEnhancement from './enhancement/Children';\nimport dataNameEnhancement from './enhancement/dataName';\nimport enhanceEnhancement from './enhancement/enhance';\nimport functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';\nimport i18nAppLocaleEnhance from './enhancement/i18n';\nimport inheritedNameEnhancement from './enhancement/inheritedName';\nimport rootEnhancement from './enhancement/Root';\nimport staticChildrenEnhancement, {\n  getterMethodNameByDisplayName,\n  ROOT_COMPONENT,\n  STATIC_COMPONENT,\n} from './enhancement/staticChildren';\nimport styleEnhancement from './enhancement/style';\nimport uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';\nimport _assignProps from './utils/assignProps';\nimport { useForkRef } from './utils/ref';\nimport useEnhancedEffect from './utils/use/useEnhancedEffect';\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((acc: any, enhancement: any) => {\n          return enhancement.call(this, acc, WrapperComponent, false);\n        }, this.props);\n\n        if (this[CORE_AS_PROPS] !== null) {\n          const prefixesMap = new Map<string, Record<string, unknown>>();\n          Object.entries(this[CORE_AS_PROPS]).forEach(([key, value]) => {\n            const [prefix, propertyKey] = key.split(':');\n            if (prefix !== 'use' && propertyKey) {\n              const obj = prefixesMap.get(prefix) ?? {};\n              obj[propertyKey] = value;\n\n              prefixesMap.set(prefix, obj);\n            }\n          });\n\n          for (const [key, value] of prefixesMap.entries()) {\n            Object.defineProperty(this[CORE_AS_PROPS], `${key}Props`, { value });\n          }\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 function assignProps(p1: any, p2: any) {\n  return _assignProps(p2, p1);\n}\n\nfunction createComponent<T extends Intergalactic.InternalTypings.ComponentTag = 'div', ComponentProps = {}, ContextType = {}, E extends Readonly<any[]> = never[]>(\n  OriginComponent: any,\n  childComponents: any = {},\n  options: {\n    context?: React.Context<ContextType>;\n    parent?: Intergalactic.Component<any, any, any, any> | Intergalactic.Component<any, any, any, any>[];\n    enhancements?: [any];\n  } = {},\n): Intergalactic.Component<T, ComponentProps, ContextType, E> {\n  const {\n    context = React.createContext<ContextType>({} as ContextType),\n    parent = [],\n    enhancements = [],\n  } = options;\n  let parents: any[] = 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    // @ts-ignore\n    OriginComponent[PARENT_COMPONENTS] = wholeFamily;\n    parents = wholeFamily;\n  }\n  // @ts-ignore\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    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  ]);\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.newInstance = 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<T extends keyof React.JSX.IntrinsicElements, P>(OriginComponent: React.ForwardRefRenderFunction<React.ElementRef<T>, P>) {\n  const Component = React.forwardRef<React.ElementRef<T>, P>(OriginComponent) as unknown as Intergalactic.Component<T, P>;\n  Component.displayName = OriginComponent.displayName ?? '';\n  // @ts-ignore\n  Component.defaultProps = {\n    'data-ui-name': OriginComponent.displayName,\n  };\n  Component[CORE_COMPONENT] = true;\n\n  return Component;\n}\n\nexport { createComponent, createBaseComponent };\n"],"mappings":"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","ignoreList":[]}