{"version":3,"file":"index-z6l3IU65.js","sources":["../../../app/javascript/src/explore/elements/ProductCard/elements/Card/index.tsx","../../../app/javascript/src/explore/elements/ProductCard/templates/Carousel/index.tsx","../../../app/javascript/src/explore/elements/ProductCard/templates/Default/index.tsx","../../../app/javascript/src/explore/compositions/ProductGrid/services/CardFactory/index.jsx"],"sourcesContent":["import React from 'react';\nimport { ProductCard } from '@goldbely/explore-component-library';\nimport camelCaseKeys from 'camelcase-keys';\nimport { useDispatch } from 'react-redux';\n\nimport * as cartActionCreators from 'src/explore/compositions/Cart/actions';\nimport * as cartCartItemsActionCreators from 'src/explore/data/cart/cart_items/actions';\nimport useFavorite from 'src/explore/hooks/useFavorite';\nimport { useShopConfig } from 'src/explore/hooks/useShopConfig';\nimport { IProduct } from 'src/explore/types/shoppe';\n\ninterface CardProps {\n analytics?: Record;\n className?: {\n badge?: string;\n container?: string;\n details?: string;\n name?: string;\n };\n hideLove?: boolean;\n hideMerchant?: boolean;\n isWhitelabel?: boolean;\n linkParameters?: {\n [key: string]: string;\n };\n product: IProduct;\n recommId?: string;\n showLocation?: boolean;\n showRating?: boolean;\n size?: 'small';\n target?: string;\n}\n\nexport const Card = ({\n analytics,\n className = {},\n hideLove,\n hideMerchant,\n isWhitelabel,\n linkParameters,\n product,\n recommId,\n showLocation,\n showRating,\n size,\n target,\n}: CardProps ) => {\n const config = camelCaseKeys( useShopConfig(), { deep: true });\n const dispatch = useDispatch();\n const [ isFavorite, toggleFavorite ] = useFavorite( product.id, recommId );\n\n const handleAddToCart = (\n event: React.FormEvent | React.KeyboardEvent | React.MouseEvent | null\n ) => {\n event.preventDefault();\n event.stopPropagation();\n\n dispatch(\n cartCartItemsActionCreators.create({\n ...linkParameters,\n cart_item: {\n product_id: product.id,\n quantity: product.defaultQuantity,\n },\n })\n );\n dispatch( cartActionCreators.open());\n };\n\n return (\n \n );\n};\n","import React from 'react';\n\nimport { IProduct } from 'src/explore/types/shoppe';\n\nimport { Card } from '../../elements/Card';\n\nimport styles from './index.module.sass';\n\ninterface CarouselProps {\n analytics?: Record;\n hideLove?: boolean;\n hideMerchant?: boolean;\n isWhitelabel?: boolean;\n linkParameters?: {\n [key: string]: string;\n };\n product: IProduct;\n recommId?: string;\n}\n\nexport const Carousel = ({\n analytics,\n hideLove,\n hideMerchant,\n isWhitelabel,\n linkParameters,\n product,\n recommId,\n}: CarouselProps ) => (\n
  • \n \n
  • \n);\n","import React, { ReactNode } from 'react';\nimport cls from 'classnames';\n\nimport { IProduct } from 'src/explore/types/shoppe';\n\nimport { Card } from '../../elements/Card';\n\nimport styles from './index.module.sass';\n\ninterface DefaultProps {\n across?: number;\n hideLove?: boolean;\n hideMerchant?: boolean;\n isWhitelabel: boolean;\n linkParameters?: {\n [key: string]: string;\n };\n product: IProduct;\n recommId?: string;\n size?: 'small';\n onBellowContentRender?: ( product: IProduct ) => ReactNode;\n onClassName?: ( product: IProduct ) => string;\n}\n\nexport const Default = ({\n across,\n hideLove,\n hideMerchant,\n isWhitelabel,\n linkParameters,\n product,\n recommId,\n size,\n onBellowContentRender,\n onClassName,\n}: DefaultProps ) => (\n \n
    \n \n\n {onBellowContentRender && onBellowContentRender( product )}\n
    \n \n);\n","import { Carousel, Default } from 'src/explore/elements/ProductCard';\n\nexport class CardFactory {\n create = ( type ) => {\n switch ( type ) {\n case 'carousel':\n return Carousel;\n default:\n return Default;\n }\n };\n}\n"],"names":["Card","analytics","className","hideLove","hideMerchant","isWhitelabel","linkParameters","product","recommId","showLocation","showRating","size","target","config","camelCaseKeys","useShopConfig","dispatch","useDispatch","isFavorite","toggleFavorite","useFavorite","handleAddToCart","event","cartCartItemsActionCreators.create","cartActionCreators.open","React","ProductCard","_a","Carousel","styles","Default","across","onBellowContentRender","onClassName","cls","CardFactory","__publicField","type"],"mappings":"ijBAiCO,MAAMA,EAAO,CAAC,CACnB,UAAAC,EACA,UAAAC,EAAY,CAAC,EACb,SAAAC,EACA,aAAAC,EACA,aAAAC,EACA,eAAAC,EACA,QAAAC,EACA,SAAAC,EACA,aAAAC,EACA,WAAAC,EACA,KAAAC,EACA,OAAAC,CACF,IAAkB,OAChB,MAAMC,EAASC,EAAeC,IAAiB,CAAE,KAAM,GAAM,EACvDC,EAAWC,EAAY,EACvB,CAAEC,EAAYC,CAAe,EAAIC,EAAab,EAAQ,GAAIC,CAAS,EAEnEa,EACJC,GACG,CACHA,EAAM,eAAe,EACrBA,EAAM,gBAAgB,EAEtBN,EACEO,EAAmC,CACjC,GAAGjB,EACH,UAAW,CACT,WAAYC,EAAQ,GACpB,SAAUA,EAAQ,eAAA,CAErB,CAAA,CACH,EACUS,EAAAQ,GAAyB,CACrC,EAGE,OAAAC,EAAA,cAACC,EAAA,CACC,UAAAzB,EACA,UAAAC,EACA,SAAAC,EACA,aAAAC,EACA,WAAAc,EACA,aAAAb,EACA,eAAAC,EACA,QAAAC,EACA,aAAAE,EACA,WAAAC,EACA,KAAAC,EACA,cAAcgB,EAAAd,EAAO,KAAP,YAAAc,EAAW,aACzB,OAAAf,EACA,YAAaS,EACb,gBAAiBhB,EAAe,KAAOc,CAAA,CACzC,CAEJ,qCCpEaS,EAAW,CAAC,CACvB,UAAA3B,EACA,SAAAE,EACA,aAAAC,EACA,aAAAC,EACA,eAAAC,EACA,QAAAC,EACA,SAAAC,CACF,oBACG,KAAG,CAAA,UAAW,GAAGqB,EAAO,OAAO,0CAC9B,EAAAJ,EAAA,cAACzB,EAAA,CACC,UAAAC,EACA,SAAAE,EACA,aAAAC,EACA,aAAAC,EACA,eAAAC,EACA,QAAAC,EACA,SAAAC,EACA,KAAK,OAAA,CACP,CACF,sFChBWsB,EAAU,CAAC,CACtB,OAAAC,EACA,SAAA5B,EACA,aAAAC,EACA,aAAAC,EACA,eAAAC,EACA,QAAAC,EACA,SAAAC,EACA,KAAAG,EACA,sBAAAqB,EACA,YAAAC,CACF,IACER,EAAA,cAAC,KAAA,CACC,UAAWS,EAAK,qDAAsDL,EAAO,QAAS,CACpF,CAACA,EAAO,YAAYE,CAAM,SAAS,CAAC,EAAG,CAAC,CAACA,CAC1C,CAAA,CAAA,EAEDN,EAAA,cAAC,MAAI,CAAA,UAAU,mBACb,EAAAA,EAAA,cAACzB,EAAA,CACC,UAAW,CACT,UAAWiC,GAAeA,EAAa1B,CAAQ,CACjD,EACA,SAAAJ,EACA,aAAAC,EACA,aAAAC,EACA,eAAAC,EACA,QAAAC,EACA,SAAAC,EACA,aAAY,GACZ,WAAU,GACV,KAAAG,CAAA,CAAA,EAGDqB,GAAyBA,EAAuBzB,CAAQ,CAC3D,CACF,ECzDK,MAAM4B,CAAY,CAAlB,cACLC,EAAA,cAAWC,GAAU,CACnB,OAASA,EAAO,CACd,IAAK,WACI,OAAAT,EACT,QACS,OAAAE,CAAA,CAEb,GACF"}