{"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":""}