{"version":3,"file":"11611a34.js","sources":["../../../node_modules/@shopify/hydrogen/dist/esnext/hooks/useCartLine/useCartLine.js","../../../src/components/globals/cart/cart-item-bundle-tag/CartItemBundleTag.client.tsx"],"sourcesContent":["import { useContext } from 'react';\nimport { CartLineContext } from '../../components/CartLineProvider/context.js';\n/**\n * The `useCartLine` hook provides access to the cart line object. It must be a descendent of a `CartProvider` component.\n */\nexport function useCartLine() {\n const context = useContext(CartLineContext);\n if (context == null) {\n throw new Error('Expected a cart line context but none was found');\n }\n return context;\n}\n","import {useCart, useCartLine, useLocalization} from '@shopify/hydrogen';\nimport {useGlobalSettings} from 'Js/hooks/useGlobalSettings';\n\nexport function CartItemBundleTag() {\n const {\n country: {isoCode: countryCode},\n } = useLocalization();\n const {promotions} = useGlobalSettings();\n const {lines} = useCart();\n const {merchandise} = useCartLine();\n\n const productTags =\n // @ts-ignore\n merchandise?.product?.tags.map((tag: string) => tag.toLowerCase()) || [];\n const promo = promotions\n ? promotions.find((promo: any) => {\n return (\n productTags.includes(promo.tagName.toLowerCase()) &&\n promo?.locales?.countries?.list.find((country: any) => {\n return country.enabled && country.isoCode === countryCode;\n })\n );\n })\n : null;\n if (!promo) return null;\n\n const {cartCopy, cartThreshold, tagName} = promo;\n if (!cartCopy || !cartThreshold) return null;\n\n const scriptLineCount = lines\n .filter((line: any) => {\n const {merchandise: lineMerchandise} = line;\n // @ts-ignore\n return lineMerchandise?.product?.tags?.includes(tagName);\n })\n .reduce((partialSum: number, line: any) => {\n const {quantity} = line;\n return partialSum + quantity;\n }, 0);\n\n if (scriptLineCount >= cartThreshold) return null;\n const itemsNeededForBundle = cartThreshold - scriptLineCount;\n\n return (\n
\n {cartCopy.replace('$NUM', itemsNeededForBundle)}\n
\n );\n}\n"],"names":["useCartLine","context","useContext","CartLineContext","CartItemBundleTag","country","isoCode","countryCode","useLocalization","promotions","useGlobalSettings","lines","useCart","merchandise","productTags","product","tags","map","tag","toLowerCase","promo","find","includes","tagName","locales","countries","list","enabled","cartCopy","cartThreshold","scriptLineCount","filter","line","lineMerchandise","reduce","partialSum","quantity","itemsNeededForBundle","replace"],"mappings":"2TAKO,SAASA,GAAc,CAC1B,MAAMC,EAAUC,qBAAWC,CAAe,EAC1C,GAAIF,GAAW,KACX,MAAM,IAAI,MAAM,iDAAiD,EAErE,OAAOA,CACX,CCRO,SAASG,GAAoB,OAC5B,KAAA,CACJC,QAAS,CAACC,QAASC,CAAW,GAC5BC,EAAiB,EACf,CAACC,WAAAA,GAAcC,EAAmB,EAClC,CAACC,MAAAA,GAASC,EAAS,EACnB,CAACC,YAAAA,GAAeb,EAAa,EAE7Bc,IAEJD,EAAAA,GAAAA,YAAAA,EAAaE,UAAbF,YAAAA,EAAsBG,KAAKC,IAAKC,GAAgBA,EAAIC,YAAa,KAAK,CAAA,EAClEC,EAAQX,EACVA,EAAWY,KAAMD,GAAe,SAC9B,OACEN,EAAYQ,SAASF,EAAMG,QAAQJ,YAAa,CAAA,KAChDC,GAAAA,EAAAA,GAAAA,YAAAA,EAAOI,UAAPJ,YAAAA,EAAgBK,YAAhBL,YAAAA,EAA2BM,KAAKL,KAAMhB,GAC7BA,EAAQsB,SAAWtB,EAAQC,UAAYC,GAGnD,CAAA,EACD,KACJ,GAAI,CAACa,EAAc,OAAA,KAEb,KAAA,CAACQ,SAAAA,EAAUC,cAAAA,EAAeN,QAAAA,CAAWH,EAAAA,EACvC,GAAA,CAACQ,GAAY,CAACC,EAAsB,OAAA,KAExC,MAAMC,EAAkBnB,EACrBoB,OAAQC,GAAc,SACf,KAAA,CAACnB,YAAaoB,CAAmBD,EAAAA,EAEvC,OAAOC,GAAAA,EAAAA,GAAAA,YAAAA,EAAiBlB,UAAjBkB,YAAAA,EAA0BjB,OAA1BiB,YAAAA,EAAgCX,SAASC,EACjD,CAAA,EACAW,OAAO,CAACC,EAAoBH,IAAc,CACnC,KAAA,CAACI,SAAAA,CAAYJ,EAAAA,EACnB,OAAOG,EAAaC,GACnB,CAAC,EAEN,GAAIN,GAAmBD,EAAsB,OAAA,KAC7C,MAAMQ,EAAuBR,EAAgBC,EAE7C,SACE,IAAA,CAAG,UAAU,2DAA0D,SACpEF,EAASU,QAAQ,OAAQD,CAAoB,CAAA,CAC5C,CAER"}