{"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"}