{"version":3,"sources":["webpack:///./Scripts/Components/BuyButton.js","webpack:///./Scripts/Containers/BuyButton.container.js"],"names":["BuyButton","_ref","label","articleNumber","quantityFieldId","href","cssClass","onClick","showLabel","isInStock","translate","React","createElement","className","upsellContainer","document","getElementById","classList","contains","remove","requestAnimationFrame","add","window","location","BuyButtonContainer","_Component","props","_this","_classCallCheck","_callSuper","buttonRef","createRef","_inherits","_createClass","key","value","_this2","this","ref","_extends","addToCart","current","Component","connect","state","dispatch","buttonDomNode","nodeIdToShowNotification","id","_Date$now","quantityElement","quantity","notificationMessage","hash"],"mappings":"0FAAA,2BAyEeA,IAtEG,SAAHC,GAST,IARJC,EAAKD,EAALC,MACAC,EAAaF,EAAbE,cACAC,EAAeH,EAAfG,gBACAC,EAAIJ,EAAJI,KACAC,EAAQL,EAARK,SACAC,EAAON,EAAPM,QACAC,EAASP,EAATO,UACSP,EAATQ,UAIiB,OAAbH,IACFA,EAAW,gDAEC,OAAVJ,IACFA,EAAQQ,YAAU,gBAkBpB,OAAOP,EACLQ,IAAAC,cAAA,KACEC,UAAWP,EACXC,QAAS,WAlBoB,IACrBO,EAmBFP,GACFA,EAAQJ,EAAeC,IApBnBU,EAAkBC,SAASC,eAAe,qBAGxCF,EAAgBG,UAAUC,SAAS,YAEnCJ,EAAgBG,UAAUE,OAAO,UAEjCC,uBAAsB,WAClBN,EAAgBG,UAAUI,IAAI,iBAkB5CV,IAAAC,cAAA,WACED,IAAAC,cAAA,KAAGC,UAAU,uDACG,SAAdL,IAAsC,IAAdA,IACxBG,IAAAC,cAAA,QAAMC,UAAU,qCAAqCX,KAIzDG,EACFM,IAAAC,cAAA,KACEC,UAAWP,EACXD,KAAMA,EACNE,QAAS,WACPe,OAAOC,SAASlB,KAAOA,IAGzBM,IAAAC,cAAA,QAAMC,UAAU,qCAAqCX,IAGvDS,IAAAC,cAAA,KAAGC,UAAWP,GACZK,IAAAC,cAAA,QAAMC,UAAU,qCAAqCX,M,ybChEP,IAE9CsB,EAAkB,SAAAC,GACpB,SAAAD,EAAYE,GAAO,IAAAC,EAEoB,OAFpBC,IAAA,KAAAJ,IACfG,EAAAE,EAAA,KAAAL,EAAA,CAAME,KACDI,UAAYnB,IAAMoB,YAAYJ,EACtC,OAAAK,IAAAR,EAAAC,GAAAQ,IAAAT,EAAA,EAAAU,IAAA,SAAAC,MAED,WAAS,IAAAC,EAAA,KACG5B,EAAc6B,KAAKX,MAAnBlB,UACAC,EAAc4B,KAAKX,MAAnBjB,UACAJ,EAASgC,KAAKX,MAAdrB,KAER,OACIM,IAAAC,cAAA,QAAM0B,IAAKD,KAAKP,WACZnB,IAAAC,cAACZ,IAASuC,IAAA,GAAKF,KAAKX,MAAK,CACrBnB,QAAS,SAACJ,EAAeC,GAAe,OAAKgC,EAAKV,MAAMc,UAAUJ,EAAKN,UAAUW,QAAStC,EAAeC,EAAiBC,EAAMG,EAAWC,YAdvI,CAASiC,aAyClBC,uBArBS,SAAAC,GACpB,MAAO,MAGgB,SAAAC,GACvB,MAAO,CACHL,UAAW,SAACM,EAAe3C,EAAeC,EAAiBI,GACvD,IAAMuC,EAA2BD,EAAcE,GAAKC,MAC9CC,EAAkB9C,EAAkBW,SAASC,eAAeZ,GAAmB,KACrFyC,EAASL,YAAU,CACfrC,gBACAgD,SAAUD,EAAkBA,EAAgBf,MAAQ,EACpDY,2BACAK,oBAAqB1C,YAAU,uBAC/B2C,KAAMJ,MACNzC,mBAMDmC,CAA6CnB","file":"7.b21080d5e0a19e9ddc59.js","sourcesContent":["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 <a\r\n className={cssClass}\r\n onClick={() => {\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 <div>\r\n <i className=\"icon ion-md-cart product-detail__buy-button--icon\"></i>\r\n {(showLabel === \"True\" || showLabel === true) && (\r\n <span className=\"product-detail__buy-button--label\">{label}</span>\r\n )}\r\n </div>\r\n </a>\r\n ) : href ? (\r\n <a\r\n className={cssClass}\r\n href={href}\r\n onClick={() => {\r\n window.location.href = href;\r\n }}\r\n >\r\n <span className=\"product-detail__buy-button--label\">{label}</span>\r\n </a>\r\n ) : (\r\n <a className={cssClass}>\r\n <span className=\"product-detail__buy-button--label\">{label}</span>\r\n </a>\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 <span ref={this.buttonRef}>\r\n <BuyButton {...this.props} \r\n onClick={(articleNumber, quantityFieldId) => this.props.addToCart(this.buttonRef.current, articleNumber, quantityFieldId, href, showLabel, isInStock)} />\r\n </span>\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":""}