{"version":3,"sources":["webpack:///./Scripts/Components/ProductPrice.js","webpack:///./Scripts/Components/ProductCard.js","webpack:///./Scripts/Containers/ProductSlider.container.js","webpack:///./Scripts/Components/BuyButton.js","webpack:///./Scripts/Containers/BuyButton.container.js"],"names":["ProductPrice","_ref","price","campaignEnd","originalAndCampaign","campaignPrice","oldPrice","showOldPrice","tierPrices","length","secondaryPrice","showSecondaryOldPrice","React","createElement","className","itemProp","itemScope","itemType","Fragment","translate","formattedTierPrice","formattedBasePrice","formattedCampaignPrice","days","Math","floor","hours","formattedSecondaryPrice","content","currency","ProductCard","productItem","index","store","product","JSON","parse","key","concat","href","url","title","name","tagImage","dangerouslySetInnerHTML","__html","image","isRelatedProducts","longDescription","articleNumber","shortDescription","showStock","isSoftware","softwareDownloadText","isInIntStock","isInExtStock","stockDeliveryTimeDescription","storeStockDeliveryTimeDescription","showPrice","isList","showBuyButton","data-article-number","id","data-css-class","data-href","data-quantity-field-id","quantityFieldId","data-show-label","showLabel","Provider","BuyButtonContainer","cssClass","label","isInStock","ProductSliderContainer","products","_ref$productCount","productCount","showMore","responsive","desktop","breakpoint","max","min","items","Number","partialVisibilityGutter","slidesToSlide","tablet","mobile","Carousel","swipeable","draggable","centerMode","arrows","renderArrowsWhenDisabled","partialVisible","containerClass","_mapInstanceProperty","call","BuyButton","onClick","upsellContainer","document","getElementById","classList","contains","remove","requestAnimationFrame","add","window","location","_Component","props","_this","_classCallCheck","_callSuper","buttonRef","createRef","_inherits","_createClass","value","_this2","this","ref","_extends","addToCart","current","Component","connect","state","dispatch","buttonDomNode","nodeIdToShowNotification","_Date$now","quantityElement","quantity","notificationMessage","hash"],"mappings":"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","file":"1.19177fef3289d766bd94.js","sourcesContent":["import React, { Fragment } from \"react\";\r\nimport { translate } from \"../Services/translation\";\r\n\r\nconst ProductPrice = ({ price, campaignEnd }) => {\r\n if (!price) {\r\n return null; // Return null if price is undefined or null to avoid rendering errors\r\n }\r\n\r\n const originalAndCampaign =\r\n price.campaignPrice != null ? \"two-priceRows product__price-wrap\" : \"product__price-wrap\";\r\n const oldPrice = price.campaignPrice != null ? \"old-price\" : \"price\";\r\n\r\n const showOldPrice =\r\n (price.tierPrices &&\r\n price.tierPrices.length > 0 &&\r\n price.secondaryPrice > price.tierPrices[0].price) ||\r\n (price.campaignPrice && price.secondaryPrice > price.campaignPrice.price);\r\n\r\n const showSecondaryOldPrice =\r\n (price.tierPrices &&\r\n price.tierPrices.length > 0 &&\r\n price.secondaryPrice > price.tierPrices[0].price) ||\r\n price.secondaryPrice > price.price.price;\r\n\r\n return (\r\n
\r\n
\r\n {price.tierPrices && price.tierPrices.length > 0 ? (\r\n \r\n \r\n {translate(\"product.pricefrom\")}\r\n \r\n {price.formattedTierPrice}\r\n \r\n ) : (\r\n {price.formattedBasePrice}\r\n )}\r\n
\r\n\r\n {price.campaignPrice && (\r\n
\r\n \r\n {price.tierPrices && price.tierPrices.length > 0 ? (\r\n \r\n {translate(\"product.pricefrom\")} {price.formattedCampaignPrice}\r\n \r\n ) : (\r\n {price.formattedCampaignPrice}\r\n )}\r\n \r\n\r\n {campaignEnd && (\r\n \r\n \r\n {translate(\"product.campaignend\", {\r\n days: Math.floor(campaignEnd / (24 * 60 * 60 * 1000)),\r\n hours: Math.floor((campaignEnd % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000)),\r\n })}\r\n \r\n )}\r\n\r\n {showOldPrice && (\r\n \r\n ({price.formattedSecondaryPrice})\r\n \r\n )}\r\n
\r\n )}\r\n\r\n {showSecondaryOldPrice && (\r\n \r\n ({price.formattedSecondaryPrice})\r\n \r\n )}\r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProductPrice;\r\n","import React, { Fragment, useEffect } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { translate } from \"../Services/translation\";\r\nimport ProductPrice from \"./ProductPrice\";\r\nimport BuyButton from \"./BuyButton\";\r\nimport { Provider } from \"react-redux\"; // Import Provider\r\nimport BuyButtonContainer from \"../Containers/BuyButton.container\";\r\n\r\nconst ProductCard = ({ productItem, index, store }) => {\r\n const product = JSON.parse(productItem.product);\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n {productItem.tagImage && (\r\n
\r\n )}\r\n \r\n
\r\n {productItem.image ? (\r\n \r\n ) : (\r\n translate(\"product.noproductimage\")\r\n )}\r\n
\r\n \r\n {product.isRelatedProducts ? (\r\n
\r\n

\r\n {product.longDescription}\r\n

\r\n \r\n {\" \"}\r\n {translate(\"product.articlenumber\")} {product.articleNumber}\r\n \r\n
\r\n ) : (\r\n
\r\n

\r\n {product.longDescription}\r\n

\r\n

\r\n {product.shortDescription}\r\n

\r\n \r\n {translate(\"product.articlenumber\")} {product.articleNumber}\r\n \r\n
\r\n )}\r\n\r\n
\r\n {product.showStock ? (\r\n product.isSoftware ? (\r\n

\r\n \r\n {product.softwareDownloadText}\r\n

\r\n ) : product.isInIntStock == true ||\r\n product.isInExtStock == true ? (\r\n

\r\n \r\n \r\n {\" \"}\r\n {product.stockDeliveryTimeDescription}\r\n \r\n {product.storeStockDeliveryTimeDescription && (\r\n \r\n {\" \"}\r\n {product.storeStockDeliveryTimeDescription}\r\n \r\n )}\r\n

\r\n ) : (\r\n

\r\n \r\n \r\n {\" \"}\r\n {product.stockDeliveryTimeDescription}\r\n \r\n {product.storeStockDeliveryTimeDescription && (\r\n \r\n {\" \"}\r\n {product.storeStockDeliveryTimeDescription}\r\n \r\n )}\r\n

\r\n )\r\n ) : null}\r\n
\r\n \r\n
\r\n\r\n
\r\n {product.showPrice && (\r\n
\r\n \r\n
\r\n )}\r\n {product.showBuyButton && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductCard;\r\n","import React from \"react\";\r\nimport Carousel from \"react-multi-carousel\";\r\nimport \"react-multi-carousel/lib/styles.css\";\r\nimport ProductCard from \"../Components/ProductCard\";\r\n\r\nconst ProductSliderContainer = ({ products, productCount = 2, store }) => {\r\n const showMore = products && products.length > productCount;\r\n const responsive = {\r\n desktop: {\r\n breakpoint: { max: 10000, min: 1024 },\r\n items: Number(productCount),\r\n partialVisibilityGutter: 0,\r\n slidesToSlide: 2,\r\n },\r\n tablet: {\r\n breakpoint: { max: 1024, min: 464 },\r\n items: 2,\r\n partialVisibilityGutter: 0,\r\n slidesToSlide: 2,\r\n },\r\n mobile: {\r\n breakpoint: { max: 464, min: 0 },\r\n items: 1.7,\r\n partialVisibilityGutter: 0,\r\n slidesToSlide: 1,\r\n },\r\n };\r\n return (\r\n
\r\n \r\n {products.map((productItem, index) => {\r\n return ;\r\n })}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProductSliderContainer;\r\n","import React from \"react\";\r\nimport { translate } from \"../Services/translation\";\r\n\r\nconst BuyButton = ({\r\n label,\r\n articleNumber,\r\n quantityFieldId,\r\n href,\r\n cssClass,\r\n onClick,\r\n showLabel,\r\n isInStock,\r\n}) => {\r\n var buyable = true;\r\n\r\n if (cssClass === null) {\r\n cssClass = \"button buy-button product-detail__buy-button\";\r\n }\r\n if (label === null) {\r\n label = translate(\"product.buy\");\r\n }\r\n\r\n const toggleUpsellVisibility = () => {\r\n const upsellContainer = document.getElementById(\"upsell-products\");\r\n\r\n if (upsellContainer) {\r\n if (upsellContainer.classList.contains(\"hidden\")) {\r\n // Remove 'hidden' class and add 'visible' after a small delay to ensure CSS transition works\r\n upsellContainer.classList.remove(\"hidden\");\r\n\r\n requestAnimationFrame(() => {\r\n upsellContainer.classList.add(\"visible\");\r\n });\r\n } \r\n }\r\n };\r\n\r\n return articleNumber && buyable ? (\r\n {\r\n // Call the passed-in onClick handler\r\n if (onClick) {\r\n onClick(articleNumber, quantityFieldId);\r\n }\r\n // Toggle visibility of upsell products\r\n toggleUpsellVisibility();\r\n }}\r\n >\r\n
\r\n \r\n {(showLabel === \"True\" || showLabel === true) && (\r\n {label}\r\n )}\r\n
\r\n \r\n ) : href ? (\r\n {\r\n window.location.href = href;\r\n }}\r\n >\r\n {label}\r\n \r\n ) : (\r\n \r\n {label}\r\n \r\n );\r\n};\r\n\r\nexport default BuyButton;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport BuyButton from '../Components/BuyButton';\r\nimport { add as addToCart } from '../Actions/Cart.action';\r\nimport { translate } from '../Services/translation';\r\n\r\nclass BuyButtonContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.buttonRef = React.createRef();\r\n }\r\n\r\n render() {\r\n const { showLabel } = this.props;\r\n const { isInStock } = this.props;\r\n const { href } = this.props;\r\n\r\n return (\r\n \r\n this.props.addToCart(this.buttonRef.current, articleNumber, quantityFieldId, href, showLabel, isInStock)} />\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return { }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n addToCart: (buttonDomNode, articleNumber, quantityFieldId, showLabel) => {\r\n const nodeIdToShowNotification = buttonDomNode.id = Date.now();\r\n const quantityElement = quantityFieldId ? document.getElementById(quantityFieldId) : null;\r\n dispatch(addToCart({\r\n articleNumber,\r\n quantity: quantityElement ? quantityElement.value : 1,\r\n nodeIdToShowNotification,\r\n notificationMessage: translate('tooltip.addedtocart'),\r\n hash: Date.now(),\r\n showLabel, \r\n }));\r\n }\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(BuyButtonContainer);\r\n"],"sourceRoot":""}