{"version":3,"file":"static/chunks/5517.e9d8fa84b574f18c.js","mappings":"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","sources":["webpack://_N_E/./utilities/content-parser.js","webpack://_N_E/./components/Content.js","webpack://_N_E/./components/SportsbookPromoItem.js","webpack://_N_E/./components/SportsbookPromos.js","webpack://_N_E/./components/TopBannerImageMobile.js","webpack://_N_E/./components/layouts/SidebarLayout.js"],"sourcesContent":["export function updateImageAndSponsoredAttributes(htmlContent) {\n  if (!htmlContent) return \"\";\n\n  const externalAffiliateRegex = new RegExp(\n    \"https://affiliates\\\\.bettingnews\\\\.com/[\\\\w-]+/\",\n    \"g\"\n  );\n\n  // Function to check if a link is an affiliate link\n  const isAffiliateLink = (href) => {\n    return href && href.match(externalAffiliateRegex);\n  };\n\n  // Function to process link (<a>) tags\n  const processLinks = (tag) => {\n    const hrefIndex = tag?.indexOf('href=\"');\n    if (hrefIndex === -1) return tag; // No href attribute found\n\n    const start = hrefIndex + 6; // Start of the URL in href\n    const end = tag?.indexOf('\"', start); // End of the URL\n    const href = tag?.substring(start, end);\n\n    if (isAffiliateLink(href)) {\n      const relIndex = tag?.indexOf('rel=\"');\n      const targetIndex = tag?.indexOf('target=\"');\n      const hasSponsored =\n        relIndex !== -1 &&\n        tag\n          ?.substring(relIndex, tag.indexOf('\"', relIndex + 5))\n          .includes(\"sponsored\");\n\n      if (relIndex === -1) {\n        tag = tag?.slice(0, end + 1) + ' rel=\"sponsored\"' + tag?.slice(end + 1);\n      } else if (!hasSponsored) {\n        const relEnd = tag.indexOf('\"', relIndex + 5);\n        tag = tag?.slice(0, relEnd) + \" sponsored\" + tag?.slice(relEnd);\n      }\n\n      if (targetIndex === -1) {\n        tag = tag?.slice(0, end + 1) + ' target=\"_blank\"' + tag?.slice(end + 1);\n      }\n    }\n\n    return tag;\n  };\n\n  // Main processing of HTML content\n  return htmlContent?.replace(/<a [^>]*>/g, processLinks);\n}\n","import { useEffect, useState } from \"react\";\n\nimport { updateImageAndSponsoredAttributes } from \"@/utilities/content-parser\";\n\nconst Content = ({ content, customClass }) => {\n  const parsedHtmlContent = updateImageAndSponsoredAttributes(content);\n\n  const [clientContent, setClientContent] = useState(null);\n\n  useEffect(() => {\n    setClientContent(parsedHtmlContent);\n  }, [content]);\n\n  if (!clientContent) return null;\n\n  return (\n    <div\n      id=\"bettingnews-content\"\n      className={customClass}\n      dangerouslySetInnerHTML={{ __html: clientContent || content }}\n      suppressHydrationWarning\n    />\n  );\n};\n\nexport default Content;\n","import Image from \"next/image\";\nimport Link from \"next/link\";\n\nimport labels from \"@/config/labels\";\n\nconst SportsbookPromoItem = ({\n  sportsbook,\n  withOfferButtons,\n  isTopBanner,\n  withPrefix = false,\n}) => {\n  const imageCtaContainerClassname = withOfferButtons\n    ? \"flex flex-col sm:flex-row sm:items-center\"\n    : withPrefix\n      ? \"flex flex-col md:flex-row items-center\"\n      : \"flex flex row items-center\";\n  const ctaClassname = withOfferButtons\n    ? \"mt-1 font-heading text-[.85rem] sm:text-base font-medium text-link-blue hover:underline\"\n    : `font-heading text-[10px] md:text-xs font-bold md:font-medium text-link-blue hover:underline ${\n        withPrefix\n          ? \"underline absolute md:static w-full md:right-0 right-4 md:text-start text-end top-14\"\n          : \"\"\n      }`;\n  const ctaLabel = withPrefix\n    ? `${labels.picksCTAPrefix} ${sportsbook?.affiliateCta?.replace(\"»\", \"\")} ${\n        labels.picksCTAPostFix\n      } ${sportsbook?.title} ${labels.quickCapCTAPostfix}`\n    : sportsbook?.affiliateCta;\n  return (\n    <div className=\"flex items-center justify-between px-5 py-3\">\n      <div className={imageCtaContainerClassname}>\n        <Image\n          className=\"mr-4 h-[30px] w-[94px]\"\n          alt={sportsbook?.title}\n          height={30}\n          src={sportsbook?.affiliateImageUrl}\n          width={94}\n        />\n        {withOfferButtons ? (\n          <>\n            <p className=\"mt-1 font-heading text-[.85rem] font-medium text-link-blue\">\n              {ctaLabel}\n            </p>\n          </>\n        ) : (\n          <Link\n            aria-label={sportsbook?.affiliateCta}\n            className={ctaClassname}\n            href={sportsbook?.affiliateUrl ?? \"\"}\n            target=\"__blank\"\n            prefetch={false}\n            rel=\"sponsored\"\n            data-event-label={`${sportsbook?.title?.toLowerCase()}-sportsbook-${\n              isTopBanner ? \"picks-list-matchup\" : \"left-cta\"\n            }`}\n          >\n            {ctaLabel}\n          </Link>\n        )}\n      </div>\n      {withOfferButtons && (\n        <Link\n          aria-label={sportsbook?.buttonLabel}\n          className=\"h-[34px] w-[110px] rounded-full bg-green text-center font-heading text-[.81rem] font-medium leading-[2.125rem] text-white md:w-[125px] md:text-[0.85rem]\"\n          href={sportsbook?.affiliateUrl ?? \"\"}\n          target=\"__blank\"\n          prefetch={false}\n          rel=\"sponsored\"\n          data-event-label={`${sportsbook?.title?.toLowerCase()}-sportsbook-${\n            isTopBanner ? \"top-banner\" : \"left-cta\"\n          }`}\n        >\n          {sportsbook?.buttonLabel}\n        </Link>\n      )}\n    </div>\n  );\n};\n\nexport default SportsbookPromoItem;\n","import labels from \"@/config/labels\";\n\nimport SportsbookPromoItem from \"./SportsbookPromoItem\";\n\nconst SportsbookPromos = ({\n  affiliates,\n  containerClass = \"\",\n  withTitle = true,\n  withOfferButtons = false,\n  isTopBanner = false,\n}) => {\n  const containerClassname = containerClass || \"\";\n\n  return (\n    <div className={containerClassname}>\n      {withTitle && (\n        <p className=\"mb-2 text-xs font-medium uppercase tracking-wider text-darker-grey\">\n          {labels.sportsbookPromosHeader}\n        </p>\n      )}\n      <ul className=\"grid grid-cols-1 divide-y divide-grey-200 rounded-lg border border-grey-200 bg-white\">\n        {affiliates?.map((sportsbook, index) => (\n          <SportsbookPromoItem\n            key={index}\n            sportsbook={sportsbook}\n            isTopBanner={isTopBanner}\n            withOfferButtons={withOfferButtons}\n          />\n        ))}\n      </ul>\n    </div>\n  );\n};\n\nexport default SportsbookPromos;\n","import Image from \"next/image\";\nimport Link from \"next/link\";\n\nimport useScreenWidth from \"@/hooks/useScreenWidth\";\n\nconst TopBannerImageMobile = ({ banner }) => {\n  const screenWidth = useScreenWidth();\n  const isMobile = screenWidth <= 480;\n\n  return (\n    <Link\n      title={banner.bannerInfo.title}\n      aria-label={banner.bannerInfo.title}\n      href={banner?.bannerInfo?.link ?? \"\"}\n      target=\"_blank\"\n      rel=\"sponsored\"\n      data-event-label=\"seasonal-banner\"\n    >\n      <Image\n        className=\"h-[80px] w-full rounded-lg\"\n        src={banner.bannerInfo.src}\n        alt={banner.bannerInfo.title}\n        loading=\"eager\"\n        priority\n        width={isMobile ? 300 : 900}\n        height={100}\n        sizes=\"(max-width: 480px) 300px, 900px\"\n        quality={65}\n      />\n    </Link>\n  );\n};\n\nexport default TopBannerImageMobile;\n","import ConsensusPicks from \"@/components/consensusPicks/ConsensusPicks\";\nimport Content from \"@/components/Content\";\nimport SportsbookPromos from \"@/components/SportsbookPromos\";\nimport { useAppContext } from \"@/hooks/useAppContext\";\n\nimport TopBannerImageMobile from \"../TopBannerImageMobile\";\n\nconst SidebarLayout = ({ children, siteContent, categoryContent }) => {\n  const { affiliates, banners } = useAppContext();\n  const mobileBanner = banners?.find(\n    (banner) => banner.title === \"banner-mobile\"\n  );\n  const isMobileBannerActive = mobileBanner?.bannerInfo.active;\n\n  return (\n    <>\n      <div className=\"container grid grid-cols-1 px-0 lg:grid-cols-[66.6%_33.3%] xl:max-w-screen-2xl xl:grid-cols-[25%_50%_25%]\">\n        <div className=\"hidden p-4 xl:block\">\n          <SportsbookPromos\n            containerClass=\"sticky top-[6.5rem] py-10\"\n            affiliates={affiliates}\n          />\n        </div>\n        <div className=\"px-5 pb-6 pt-4 lg:py-14\">\n          {isMobileBannerActive && (\n            <div className=\"mb-4 h-auto w-full sm:hidden\">\n              <TopBannerImageMobile banner={mobileBanner} />\n            </div>\n          )}\n          {children}\n        </div>\n        <div className=\"hidden p-4 lg:block\">\n          <ConsensusPicks />\n        </div>\n      </div>\n      {siteContent && <Content content={siteContent} />}\n      {categoryContent?.length > 0 &&\n        categoryContent.map((article, index) => (\n          <Content key={index} content={article.content} />\n        ))}\n    </>\n  );\n};\n\nexport default SidebarLayout;\n"],"names":["components_Content","content","customClass","param","parsedHtmlContent","updateImageAndSponsoredAttributes","htmlContent","externalAffiliateRegex","isAffiliateLink","href","match","replace","hrefIndex","tag","indexOf","start","end","substring","relIndex","targetIndex","hasSponsored","includes","slice","relEnd","clientContent","setClientContent","useState","useEffect","jsx_runtime","jsx","div","id","className","dangerouslySetInnerHTML","__html","suppressHydrationWarning","__webpack_exports__","Z","sportsbook","withOfferButtons","isTopBanner","withPrefix","ctaLabel","concat","labels","picksCTAPrefix","affiliateCta","picksCTAPostFix","title","quickCapCTAPostfix","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","Image","alt","height","src","affiliateImageUrl","width","Fragment","p","Link","aria-label","affiliateUrl","target","prefetch","rel","data-event-label","toLowerCase","buttonLabel","components_SportsbookPromos","affiliates","containerClass","withTitle","sportsbookPromosHeader","ul","map","index","SportsbookPromoItem","components_TopBannerImageMobile","banner","screenWidth","useScreenWidth","bannerInfo","link","loading","priority","isMobile","sizes","quality","layouts_SidebarLayout","children","siteContent","categoryContent","banners","useAppContext","mobileBanner","find","isMobileBannerActive","active","SportsbookPromos","TopBannerImageMobile","ConsensusPicks","Content","length","article"],"sourceRoot":""}