{"version":3,"file":"index-BpY3g_5J.js","sources":["../../../app/javascript/src/explore/compositions/ProductCarousel/elements/Products/index.tsx","../../../app/javascript/src/explore/compositions/ProductCarousel/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nimport { useShopConfig } from 'src/explore/hooks/useShopConfig';\nimport { CardFactory } from '../../../ProductGrid/services/CardFactory';\n\nconst factory = new CardFactory();\n\ninterface Props {\n  analytics?: Record<string, string>;\n  hideLove?: boolean;\n  hideMerchant?: boolean;\n  linkParameters?: {\n    [key: string]: string;\n  };\n  products: Array<any>;\n  recommId?: string | null;\n  template: string;\n}\n\nexport const Products: FC<Props> = ({\n  analytics = {},\n  hideLove,\n  hideMerchant,\n  linkParameters,\n  products,\n  recommId,\n  template,\n}) => {\n  const config = useShopConfig();\n\n  if ( !( products && products.length )) return null;\n\n  const ProductCard = factory.create( template );\n\n  return (\n    <>\n      {products.map(( product, i ) => {\n        if ( !product ) return null;\n\n        return (\n          <ProductCard\n            analytics={{\n              ...analytics,\n              click: `position: ${i + 1}${analytics.click ? `; ${analytics.click}` : ''}`,\n            }}\n            hideLove={hideLove || config.isWhitelabel}\n            hideMerchant={hideMerchant}\n            linkParameters={linkParameters}\n            isWhitelabel={config.isWhitelabel}\n            key={product.id}\n            product={product}\n            recommId={recommId}\n          />\n        );\n      })}\n    </>\n  );\n};\n","import React, { FC } from 'react';\nimport { Carousel } from '@goldbely/explore-component-library';\n\nimport ProductSkeletons from 'src/explore/elements/ProductSkeletons';\n\nimport { Products } from './elements/Products';\n\nimport styles from './index.module.sass';\n\ninterface Props {\n  analytics?: Record<string, string>;\n  hideLove?: boolean;\n  hideMerchant?: boolean;\n  linkParameters?: {\n    [key: string]: string;\n  };\n  pristine: boolean;\n  products: Array<any>;\n  recommId?: string | null;\n  template: string;\n  title?: string | null;\n  viewAllText?: string;\n  viewAllLinkUrl?: string;\n}\n\nexport const ProductCarousel: FC<Props> = ({\n  analytics,\n  hideLove,\n  hideMerchant,\n  linkParameters,\n  pristine,\n  products,\n  recommId,\n  template,\n  title,\n  viewAllText = 'View All',\n  viewAllLinkUrl,\n}) => {\n  if ( !products?.length && !pristine ) return null;\n\n  return (\n    <div className=\"spec__product-carousel\">\n      {title && <h3 className=\"mb-3 fs-5 fs-lg-8 text-uppercase text-center\">{title}</h3>}\n\n      {pristine ? (\n        <ProductSkeletons across={4} className=\"flex-nowrap w-100 overflow-hidden\" />\n      ) : (\n        <Carousel\n          classNames={{ container: `${styles.container} spec__collection-products` }}\n          element=\"ul\"\n          jumpToEdgeChild\n        >\n          <Products\n            analytics={analytics}\n            hideLove={hideLove}\n            hideMerchant={hideMerchant}\n            linkParameters={linkParameters}\n            products={products}\n            recommId={recommId}\n            template={template}\n          />\n        </Carousel>\n      )}\n\n      {viewAllLinkUrl && (\n        <div className=\"px-4 mt-4 text-center\">\n          <a href={viewAllLinkUrl} className={`${styles.button} btn btn-dark px-9`}>\n            {viewAllText}\n          </a>\n        </div>\n      )}\n    </div>\n  );\n};\n"],"names":["factory","CardFactory","Products","analytics","hideLove","hideMerchant","linkParameters","products","recommId","template","config","useShopConfig","ProductCard","React","product","i","ProductCarousel","pristine","title","viewAllText","viewAllLinkUrl","ProductSkeletons","Carousel","styles"],"mappings":"wMAKA,MAAMA,EAAU,IAAIC,EAcPC,EAAsB,CAAC,CAClC,UAAAC,EAAY,CAAC,EACb,SAAAC,EACA,aAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,CACF,IAAM,CACJ,MAAMC,EAASC,EAAc,EAE7B,GAAK,EAAGJ,GAAYA,EAAS,QAAiB,OAAA,KAExC,MAAAK,EAAcZ,EAAQ,OAAQS,CAAS,EAE7C,OAEKI,EAAA,cAAAA,EAAA,SAAA,KAAAN,EAAS,IAAI,CAAEO,EAASC,IACjBD,EAGJD,EAAA,cAACD,EAAA,CACC,UAAW,CACT,GAAGT,EACH,MAAO,aAAaY,EAAI,CAAC,GAAGZ,EAAU,MAAQ,KAAKA,EAAU,KAAK,GAAK,EAAE,EAC3E,EACA,SAAUC,GAAYM,EAAO,aAC7B,aAAAL,EACA,eAAAC,EACA,aAAcI,EAAO,aACrB,IAAKI,EAAQ,GACb,QAAAA,EACA,SAAAN,CAAA,CACF,EAfqB,IAiBxB,CACH,CAEJ,uEChCaQ,EAA6B,CAAC,CACzC,UAAAb,EACA,SAAAC,EACA,aAAAC,EACA,eAAAC,EACA,SAAAW,EACA,SAAAV,EACA,SAAAC,EACA,SAAAC,EACA,MAAAS,EACA,YAAAC,EAAc,WACd,eAAAC,CACF,IACO,EAACb,GAAA,MAAAA,EAAU,SAAU,CAACU,EAAkB,qBAG1C,MAAI,CAAA,UAAU,0BACZC,GAASL,EAAA,cAAC,MAAG,UAAU,gDAAgDK,CAAM,EAE7ED,EACEJ,EAAA,cAAAQ,EAAA,CAAiB,OAAQ,EAAG,UAAU,oCAAoC,EAE3ER,EAAA,cAACS,EAAA,CACC,WAAY,CAAE,UAAW,GAAGC,EAAO,SAAS,4BAA6B,EACzE,QAAQ,KACR,gBAAe,EAAA,EAEfV,EAAA,cAACX,EAAA,CACC,UAAAC,EACA,SAAAC,EACA,aAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,CAAA,CAAA,CACF,EAIHW,GACCP,EAAA,cAAC,MAAI,CAAA,UAAU,yBACZA,EAAA,cAAA,IAAA,CAAE,KAAMO,EAAgB,UAAW,GAAGG,EAAO,MAAM,oBACjD,EAAAJ,CACH,CACF,CAEJ"}