{"version":3,"file":"createFlowRemoteComponentRenderer.mjs","names":[],"sources":["../../../src/lib/createFlowRemoteComponentRenderer.tsx"],"sourcesContent":["import { isReactSuspendedStyle, isStyleProp } from \"@/lib/propClassifiers\";\nimport type { RemoteComponentRendererProps } from \"@mittwald/remote-dom-react/host\";\nimport { createRemoteComponentRenderer } from \"@mittwald/remote-dom-react/host\";\nimport { FlowRemoteElement } from \"@mittwald/flow-remote-elements\";\nimport type { FlowRemoteElementMetaData } from \"@mittwald/flow-remote-elements\";\nimport { Version } from \"@mittwald/flow-remote-core\";\nimport { type ComponentType } from \"react\";\nimport { mapValues } from \"remeda\";\n\nconst mapProperty = (val: unknown, key: string) => {\n  if (isStyleProp(key)) {\n    if (isReactSuspendedStyle(val)) {\n      return {\n        display: \"none\",\n      };\n    }\n    return {};\n  }\n  return val;\n};\n\nexport const createFlowRemoteComponentRenderer = <P extends object>(\n  name: string,\n  Component: ComponentType<P>,\n): ComponentType<RemoteComponentRendererProps> => {\n  function HostComponent(props: P & FlowRemoteElementMetaData) {\n    const hostComponentProps = mapValues(props, (v, k) =>\n      mapProperty(v, k),\n    ) as P & FlowRemoteElementMetaData;\n\n    const {\n      [FlowRemoteElement.versionPropertyName]: version = Version.v1,\n      [FlowRemoteElement.initializationPropertyName]: initialized = false,\n      ...restProps\n    } = hostComponentProps;\n\n    if (version >= Version.v3) {\n      // \"initialized\" handling introduced in version 3\n      if (!initialized) {\n        return null;\n      }\n    }\n\n    return <Component {...(restProps as P)} />;\n  }\n  HostComponent.displayName = `FlowRemoteRenderer(${name})`;\n  return createRemoteComponentRenderer(HostComponent, {\n    name: `RemoteRenderer(${name})`,\n  });\n};\n"],"mappings":";;;;;;;;;;AASA,IAAM,eAAe,KAAc,QAAgB;CACjD,IAAI,YAAY,GAAG,GAAG;EACpB,IAAI,sBAAsB,GAAG,GAC3B,OAAO,EACL,SAAS,OACX;EAEF,OAAO,CAAC;CACV;CACA,OAAO;AACT;AAEA,IAAa,qCACX,MACA,cACgD;CAChD,SAAS,cAAc,OAAsC;EAK3D,MAAM,GACH,kBAAkB,sBAAsB,UAAU,QAAQ,KAC1D,kBAAkB,6BAA6B,cAAc,OAC9D,GAAG,cAPsB,UAAU,QAAQ,GAAG,MAC9C,YAAY,GAAG,CAAC,CAOd;EAEJ,IAAI,WAAW,QAAQ,IAEjB;OAAA,CAAC,aACH,OAAO;EAAA;EAIX,OAAO,oBAAC,WAAD,EAAW,GAAK,UAAkB,CAAA;CAC3C;CACA,cAAc,cAAc,sBAAsB,KAAK;CACvD,OAAO,8BAA8B,eAAe,EAClD,MAAM,kBAAkB,KAAK,GAC/B,CAAC;AACH"}