{"version":3,"file":"static/js/RichText.941591ae.js","mappings":"wNAYA,MAkEMA,EACFC,QAE2BC,IAApBD,QAC2BC,IAA9BD,EAAgBE,WAChBC,EAAAA,EAAAA,KAACC,EAAAA,EAAsB,CAEnBC,QAASL,EACTM,kBAAmBC,EAAAA,GAFdC,OAKR,GAIHC,EAAsBA,CACxBJ,EACAK,GAA8BP,EAAAA,EAAAA,KAACQ,EAAAA,GAAK,MAE7BN,EAAQO,QAAO,CAACC,EAAQC,EAAUC,SACpBd,IAAba,EAA+BD,EACN,kBAAbC,EACY,KAApBA,EAASE,OAAsBH,EAC5B,IACAA,EACHI,EAAAA,aAAmBP,EAAe,CAC9BQ,GAAI,MACJC,IAAKJ,EACLK,wBAAyB,CACrBC,OAAQP,MAKb,IAAID,EAAQC,IAExB,IAGDQ,EAAWA,EACbjB,UACAkB,YACAC,QACAC,eACAC,cACAhB,iBAAgBP,EAAAA,EAAAA,KAACQ,EAAAA,GAAK,IACtBgB,YAAW,EACXC,WAEA,MAAMC,EAnHcC,EACpBzB,EACAK,EACAc,EACAC,EACAC,EACAC,EACAC,KAOA,MAAMf,EAASR,EAAQO,QACnB,CAACC,EAAQkB,KACL,GACIA,EAAaC,OAASC,EAAAA,EAAgBC,iBACtCH,EAAaC,OAASC,EAAAA,EAAgBE,MACxC,CACE,IAAIC,EAAiBL,EAAaM,MAmBlC,MAjBkC,kBAAvBN,EAAaM,QACpBD,EAAiB,IACVL,EAAaM,MAChBb,MAAOA,EAMPC,aAAcA,EACdC,YAAaA,EACbC,SAAUA,EACVJ,UAAW,WACXK,KAAMA,IAIP,IACAf,EACHd,EAAkBqC,GAE1B,CAAO,GACHL,EAAaC,OAASC,EAAAA,EAAgBK,QACtCP,EAAaC,OAASC,EAAAA,EAAgBM,IACxC,CACE,MAAMC,EAAc3B,EAAO4B,MAC3B,IAAIC,EAAoBX,EAAaM,MAKrC,OAJAK,EAAoBA,EACfC,QAAQ,UAAW,wCACnBA,QAAQ,aAAc,kBAEG,kBAAhBH,EACR,IAAI3B,EAAQ2B,EAAYI,OAAOF,IAC/B,IAAI7B,EAAQ2B,EAAaE,EACnC,CACI,OAAO7B,CACX,GAEJ,IAGJ,OAAOJ,EAAoBI,EAAQH,EAAc,EAoDhCoB,CACbzB,EACAK,EACAc,EACAC,EACAC,EACAC,EACAC,GAGJ,OAAOzB,EAAAA,EAAAA,KAAA,OAAKoB,UAAWA,EAAUM,SAAEA,GAAe,EAGtD,UAAeZ,EAAAA,KAAWK,E,wDC5InB,IAAKW,EAAe,SAAfA,GAAe,OAAfA,EAAe,gBAAfA,EAAe,UAAfA,EAAe,kCAAfA,EAAe,cAAfA,CAAe,K","sources":["components/RichText/RichText.tsx","types/EpiFragmentType.ts"],"sourcesContent":["import React, { ReactElement } from \"react\";\nimport uniqid from \"uniqid\";\n\nimport BlockComponentSelector from \"components/BlockComponentSelector\";\nimport { BodyM } from \"style/components/Typography\";\nimport { EpiContentBlock } from \"types/EpiBlock\";\nimport EpiFragment from \"types/EpiFragment\";\nimport { EpiFragmentType } from \"types/EpiFragmentType\";\nimport getComponentTypeForContent from \"utils/getComponentTypeForContent\";\n\nimport RichTextProps from \"./RichTextProps\";\n\nconst generateContent = (\n    content: EpiFragment[],\n    renderElement: ReactElement,\n    theme: string | undefined,\n    contentTheme: string | undefined,\n    actionTheme: string | undefined,\n    lightbox: boolean,\n    l18n:\n        | {\n              closeLabel?: string;\n              openImageFullsizeLabel?: string;\n          }\n        | undefined,\n): (string | JSX.Element | undefined)[] => {\n    const result = content.reduce(\n        (result, nextFragment) => {\n            if (\n                nextFragment.type === EpiFragmentType.EmbeddedContent ||\n                nextFragment.type === EpiFragmentType.Image\n            ) {\n                let componentProps = nextFragment.value;\n\n                if (typeof nextFragment.value === \"object\") {\n                    componentProps = {\n                        ...nextFragment.value,\n                        theme: theme as\n                            | \"lightgray\"\n                            | \"blue\"\n                            | \"cyan\"\n                            | \"coral\"\n                            | \"black\",\n                        contentTheme: contentTheme,\n                        actionTheme: actionTheme,\n                        lightbox: lightbox,\n                        className: \"embedded\",\n                        l18n: l18n,\n                    };\n                }\n\n                return [\n                    ...result,\n                    generateComponent(componentProps as EpiContentBlock),\n                ];\n            } else if (\n                nextFragment.type === EpiFragmentType.Static ||\n                nextFragment.type === EpiFragmentType.Url\n            ) {\n                const lastElement = result.pop();\n                let nextFragmentValue = nextFragment.value as string;\n                nextFragmentValue = nextFragmentValue\n                    .replace(/<table/g, '<div class=\"responsive-table\"><table')\n                    .replace(/<\\/table>/g, \"</table></div>\");\n\n                return typeof lastElement === \"string\"\n                    ? [...result, lastElement.concat(nextFragmentValue)]\n                    : [...result, lastElement, nextFragmentValue];\n            } else {\n                return result;\n            }\n        },\n        [] as (string | JSX.Element | undefined)[],\n    );\n\n    return convertStringsToJSX(result, renderElement);\n};\n\nconst generateComponent = (\n    embeddedContent: EpiContentBlock,\n): string | JSX.Element => {\n    return embeddedContent !== undefined &&\n        embeddedContent.component !== undefined ? (\n        <BlockComponentSelector\n            key={uniqid()}\n            content={embeddedContent}\n            componentSelector={getComponentTypeForContent}\n        />\n    ) : (\n        (\"\" as string)\n    );\n};\n\nconst convertStringsToJSX = (\n    content: (string | JSX.Element | undefined)[],\n    renderElement: ReactElement = <BodyM />,\n): JSX.Element[] => {\n    return content.reduce((result, nextItem, index) => {\n        if (nextItem === undefined) return result;\n        else if (typeof nextItem === \"string\") {\n            if (nextItem.trim() === \"\") return result;\n            return [\n                ...result,\n                React.cloneElement(renderElement, {\n                    as: \"div\",\n                    key: index,\n                    dangerouslySetInnerHTML: {\n                        __html: nextItem,\n                    },\n                }),\n            ];\n        } else {\n            return [...result, nextItem];\n        }\n    }, [] as JSX.Element[]);\n};\n\nconst RichText = ({\n    content,\n    className,\n    theme,\n    contentTheme,\n    actionTheme,\n    renderElement = <BodyM />,\n    lightbox = false,\n    l18n,\n}: RichTextProps): ReactElement => {\n    const children = generateContent(\n        content,\n        renderElement,\n        theme,\n        contentTheme,\n        actionTheme,\n        lightbox,\n        l18n,\n    );\n\n    return <div className={className}>{children}</div>;\n};\n\nexport default React.memo(RichText);\n","export enum EpiFragmentType {\n    Static = \"Static\",\n    Url = \"Url\",\n    EmbeddedContent = \"EmbeddedContent\",\n    Image = \"Image\",\n}\n"],"names":["generateComponent","embeddedContent","undefined","component","_jsx","BlockComponentSelector","content","componentSelector","getComponentTypeForContent","uniqid","convertStringsToJSX","renderElement","BodyM","reduce","result","nextItem","index","trim","React","as","key","dangerouslySetInnerHTML","__html","RichText","className","theme","contentTheme","actionTheme","lightbox","l18n","children","generateContent","nextFragment","type","EpiFragmentType","EmbeddedContent","Image","componentProps","value","Static","Url","lastElement","pop","nextFragmentValue","replace","concat"],"sourceRoot":""}