{"version":3,"mappings":"+HAMA,MAAMA,EAAyBC,OAAK,IAAMC,EAAA,WAAO,sCAAsD,EAAC,6BAClGC,EAAuBF,OAAK,IAAMC,EAAA,WAAO,2BAA+D,gBAAC,2BAYzGE,EAAYA,CAAC,CACjBC,WACAC,oBACAC,kBACAC,aACAC,kBACAC,oBACAC,aACc,IAAM,CACpB,MAAMC,EAAgB,oJAChBC,EAAyBJ,GAAmBD,EAC5C,CAACM,EAAWC,CAAY,EAAIC,WAAS,EAAK,EAE1CC,EAAiBA,IAAM,CAC3B,IAAIC,EAAMR,iBAAmBQ,IAEzBA,GACGA,EAAIC,WAAW,OAAO,IACzBD,EAAO,WAAUA,CAAI,IAEhBE,OAAKF,EAAK,QAAQ,EACPZ,KAElBS,EAAa,EAAI,CACnB,EAGKM,EAA6BA,IAAM,CACjCD,OAAKE,EAAsB,QAAQ,GAG5C,SACE,OAAKC,UAAU,mDAAkDC,SAC9D,EAAE,CAACnB,EAASoB,WAAaf,GAAqBL,EAASqB,SAAYb,IAClEc,EAAA,OAAAH,UACIX,GAA0BR,EAASuB,iBACnC,OAAKL,UAAU,sDAAqDC,WACjEK,EAAwB,CAACN,UAAU,wCAAwCO,QAASA,IAAMf,EAAa,EAAI,EAAI,EAC7G,EAEPgB,EAACC,EAAM,CACLC,KAAK,SACLC,QAAS,QACTX,UAAWX,EACXkB,QAASb,EACTkB,MAAQ,CAAEC,OAAQ,iBAAkB,EAAGZ,SAEtCd,EAAoBA,iBAAmB2B,KAAO,iBACzC,CAAC,EACN,EAEPN,EAACC,EAAM,CACLC,KAAK,SACLC,QAAQ,UACRJ,QAASzB,EAASqB,QAAUnB,EAAkBc,EAC9CE,UAAWX,EAAcY,SAEvBnB,EAASiC,WAAa,qBAAuB,mBACzC,EACRP,EAACQ,WAAQ,CAACC,SAAUT,EAAA,QAAU,EAAEP,SAC7Bb,GACCoB,EAAAU,EAAA,CAAAjB,SACGnB,EAASuB,gBAAkBvB,EAASqB,SAAWlB,KAC7CR,EAAsB,CACrBc,YACAC,eACAV,WACAK,oBACD,EAEDG,GACEkB,EAAC5B,EAAoB,CACnBW,YACAC,eACD,EAGL,EAEI,CAAC,EACR,CAET,EAEe2B,SAAKtC,CAAS","names":["CustomSolutionCtaModal","lazy","__vitePreload","PremiumFeaturesModal","CTAButton","solution","handleDemoOnClick","handleContactUs","isRmcAdmin","isSolutionOwner","customSolutionCta","currentUser","buttonClasses","isSolutionOwnerOrAdmin","openModal","setOpenModal","useState","handleCtaClick","url","startsWith","open","handleRequestProposalClick","REQUEST_PROPOSAL_URL","className","children","hide_demo","claimed","_jsxs","paid_solution","MdOutlineModeEditOutline","onClick","_jsx","Button","type","variant","style","border","text","consultant","Suspense","fallback","_Fragment","memo"],"sources":["../../../app/javascript/components/atoms/solution/CTAButton.tsx"],"sourcesContent":["import { useState, memo, lazy, Suspense } from 'react'\nimport Button from '../buttons/Button'\nimport { MdOutlineModeEditOutline } from 'react-icons/md'\nimport window from 'global'\nimport { REQUEST_PROPOSAL_URL } from '@/utils/constants'\n\nconst CustomSolutionCtaModal = lazy(() => import('@/components/molecules/modals/CustomSolutionCtaModal'))\nconst PremiumFeaturesModal = lazy(() => import('@/components/molecules/accountManagement/PremiumFeaturesModal'))\n\ntype CTAButtonProps = {\n solution: schema.Solution;\n handleDemoOnClick: () => void;\n handleContactUs: () => void;\n isRmcAdmin: boolean;\n isSolutionOwner: boolean;\n customSolutionCta?: schema.CustomSolutionCta;\n currentUser?: schema.User\n};\n\nconst CTAButton = ({\n solution,\n handleDemoOnClick,\n handleContactUs,\n isRmcAdmin,\n isSolutionOwner,\n customSolutionCta,\n currentUser\n}: CTAButtonProps) => {\n const buttonClasses = 'w-[140px] h-[24px] sm:h-[36px] text-xs sm:text-sm whitespace-nowrap relative flex flex-row items-center justify-center gap-2 sm:gap-3 !rounded-md'\n const isSolutionOwnerOrAdmin = isSolutionOwner || isRmcAdmin\n const [openModal, setOpenModal] = useState(false)\n\n const handleCtaClick = () => {\n let url = customSolutionCta?.url\n\n if (url) {\n if (!url.startsWith('https')) {\n url = `https://${url}`\n }\n window.open(url, '_blank')\n handleDemoOnClick()\n } else {\n setOpenModal(true)\n }\n }\n\n const handleRequestProposalClick = () => {\n window.open(REQUEST_PROPOSAL_URL, '_blank')\n }\n\n return (\n <div className='flex flex-col md:flex-row md:gap-1 gap-[0.25rem]'>\n {((!solution.hide_demo && customSolutionCta && solution.claimed) || isSolutionOwnerOrAdmin) && (\n <div>\n {(isSolutionOwnerOrAdmin && solution.paid_solution ) &&\n <div className='absolute z-10 rounded-full bg-black p-1 ml-[7.7rem]'>\n <MdOutlineModeEditOutline className='text-white cursor-pointer text-[10px]' onClick={() => setOpenModal(true)} />\n </div>\n }\n <Button\n type='button'\n variant={'white'}\n className={buttonClasses}\n onClick={handleCtaClick}\n style={ { border: \"1px solid black\" } }\n >\n {customSolutionCta ? customSolutionCta?.text : 'Add Custom CTA'}\n </Button>\n </div>\n )}\n <Button\n type='button'\n variant='primary'\n onClick={solution.claimed ? handleContactUs : handleRequestProposalClick}\n className={buttonClasses}\n >\n {(solution.consultant ? 'Contact Consultant' : 'Contact Solution')}\n </Button>\n <Suspense fallback={<div></div>}>\n {currentUser && (\n <>\n {solution.paid_solution && (solution.claimed || isRmcAdmin) ? (\n <CustomSolutionCtaModal\n openModal={openModal}\n setOpenModal={setOpenModal}\n solution={solution}\n customSolutionCta={customSolutionCta}\n />\n ) : (\n isSolutionOwnerOrAdmin && (\n <PremiumFeaturesModal\n openModal={openModal}\n setOpenModal={setOpenModal}\n />\n )\n )}\n </>\n )}\n </Suspense>\n </div>\n )\n}\n\nexport default memo(CTAButton)\n"],"file":"assets/CTAButton-zxf4nlwL.js"}