{"version":3,"sources":["webpack:///./Scripts/Components/Modal.js","webpack:///./Scripts/Components/ZipCode.js","webpack:///./Scripts/Components/BuyButton.js","webpack:///./Scripts/Containers/BuyButton.Container.js"],"names":["Modal","props","_classCallCheck","this","_possibleConstructorReturn","_getPrototypeOf","call","Component","undefined","onAccept","react__WEBPACK_IMPORTED_MODULE_0___default","a","createElement","className","onClick","translate","onCancel","__html","React","Children","map","children","child","type","displayName","id","isOpen","dangerouslySetInnerHTML","renderBody","renderAcceptButton","renderCancelButton","Header","Body","Popup","isBuyButton","closePopup","href","_Containers_LocalizationCookie_Container__WEBPACK_IMPORTED_MODULE_2__","buyButton","ZipCode","_this","state","showPopup","notLocalizedModalIsOpen","setState","togglePopup","bind","autoComplete","BuyButton","_ref","notlocalizedtext","disabled","readMore","isShowMore","label","articleNumber","quantityFieldId","cssClass","unitcodeFieldId","articleErpstatus","minQuantity","stockquantity","itemstatus","isQuotationItem","loading","_useState2","_slicedToArray","useState","isDisabled","setIsDisabled","useEffect","react_default","concat","String","prototype","format","args","arguments","replace","match","number","BuyButtonContainer","buttonRef","createRef","buyConfirmModalIsOpen","buyMinimumQuanityIsOpen","outOfQuantityConfirmModalIsOpen","wantedQuantity","quantity","toggleBuyConfirmModalIsOpen","_assertThisInitialized","toggleBuyMinimumQuanityIsOpen","toggleOutOfQuantityConfirmModalIsOpen","toggleNotLocalizedModalIsOpen","onModalAwnser","acceptNewQuantity","unitcodeSuffixId","document","getElementById","innerText","currencySymbol","JSON","parse","units","unitName","addEventListener","e","target","value","newQuantity","addToCart","current","unitCodeValue","console","error","_context","t0","_this2","_this$state","_this$props","modalProducthastobeorderTitle","modalProducthastobeorderContent","modalProducthasexpiredContent","modalProducthasexpiredTitle","modalProductminquantityContent","modalProductminquantityTitle","datanotlocalizedtext","quantityDomElement","readmore","isbuyable","ref","Components_BuyButton","_extends","isquotationitem","exsistingCartItem","orderRows","find","v","existingCartItemQuantity","itemNo","toString","toLowerCase","isLocalized","handleButtonClick","setTimeout","connect","localized","cart","dispatch","buttonDomNode","unitCodeFieldId","erpStatus","nodeIdToShowNotification","Date","now","notificationMessage","hash"],"mappings":"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","file":"1.849e5dc36f03c057867c.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { translate } from '../Services/translation';\r\n\r\n\r\nconst MODAL_HEADER_NAME = \"Modal.Header\"\r\nconst MODAL_BODY_NAME = \"Modal.Body\"\r\n\r\nclass Modal extends Component {\r\n  constructor(props) {\r\n    super(props)\r\n  }\r\n\r\n  renderAcceptButton() {\r\n    return this.props.onAccept !== undefined ?\r\n      <a className=\"button buy-button product-detail__buy-button modal-ok-button\" onClick={this.props.onAccept}>{translate('modal.ok.button')}</a> :\r\n      null;\r\n  }\r\n\r\n  renderCancelButton() {\r\n    return this.props.onCancel !== undefined ?\r\n      <a className=\"button buy-button product-detail__buy-button modal-cancel-button\" onClick={this.props.onCancel}>{translate('modal.cancel.button')}</a> :\r\n      null;\r\n  }\r\n\r\n  renderBody() {\r\n    return {\r\n      __html: React.Children.map(this.props.children, child => {\r\n        return (child.type.displayName === MODAL_BODY_NAME) ? child : null\r\n      })[0].props.children\r\n    }\r\n  }\r\n\r\n  render() {\r\n    return (\r\n      <div id=\"myModal\" className={this.props.isOpen ? 'modal show' : 'modal hide'}>\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-header\">\r\n            <span className=\"close\" onClick={this.props.onCancel}>&times;</span>\r\n\r\n            {\r\n              React.Children.map(this.props.children, child => {\r\n                return (child.type.displayName === MODAL_HEADER_NAME) ? child : null\r\n              })\r\n            }\r\n\r\n          </div>\r\n          <div className=\"modal-body\" dangerouslySetInnerHTML={this.renderBody()} />\r\n          <div className=\"modal-footer row-inner\">\r\n            <div className=\"columns small-12\">\r\n              {this.renderAcceptButton()}\r\n              {this.renderCancelButton()}\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    )\r\n  }\r\n}\r\n\r\n\r\n\r\nexport const Header = (props) => {\r\n  return (props.children)\r\n}\r\nHeader.displayName = MODAL_HEADER_NAME\r\n\r\nexport const Body = (props) => {\r\n  return (props.children)\r\n}\r\nBody.displayName = MODAL_BODY_NAME\r\n\r\nexport default Modal;\r\n\r\n","import React from \"react\";\r\nimport { translate } from \"../Services/translation\";\r\nimport LocalizationCookieContainer from \"../Containers/LocalizationCookie.Container\";\r\n\r\nclass Popup extends React.Component {\r\n  render() {\r\n    return (\r\n      <div className=\"zip-code-popup\">\r\n        <div className=\"zip-code-popup--content\">\r\n          {this.props.isBuyButton ?<h3>{translate(\"zipcode.enterpostcodetobuy\")}</h3> : <h3>{translate(\"zipcode.enterpostcode\")}</h3>}\r\n          <a className=\"zip-code-popup--close\" onClick={this.props.closePopup}>\r\n            <svg>\r\n              <use href=\"/ui/images/icons/x-circle.svg#x-circle\" />\r\n            </svg>\r\n          </a>\r\n          {this.props.isBuyButton ? <LocalizationCookieContainer buyButton={this.props.onAccept}/> : <LocalizationCookieContainer />}\r\n        </div>\r\n        <div\r\n          className=\"zip-code-popup--bgoverlay\"\r\n          onClick={this.props.closePopup}\r\n        ></div>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\nclass ZipCode extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      showPopup: this.props.notLocalizedModalIsOpen ? true : false,\r\n    };\r\n  }\r\n  togglePopup() {\r\n    this.setState({\r\n      showPopup: !this.state.showPopup,\r\n    });\r\n  }\r\n\r\n  render() {\r\n    if(!this.props.isBuyButton) {\r\n    return (\r\n      <div>\r\n        <label className=\"filter-switch\">\r\n          <svg>\r\n            <use href=\"/ui/images/icons/green-round-tick.svg#tick\" />\r\n          </svg>\r\n          <input\r\n            onClick={this.togglePopup.bind(this)}\r\n            autoComplete=\"off\"\r\n            type=\"checkbox\"\r\n          />\r\n         {translate(\"zipcode.postcode\")}\r\n          <div className=\"filter-switch__content\"></div>\r\n        </label>\r\n        {this.state.showPopup ? (\r\n          <Popup closePopup={this.togglePopup.bind(this)} />\r\n        ) : null}\r\n      </div>\r\n    );\r\n        }\r\n        else if(this.state.showPopup && this.props.isBuyButton) {\r\n          return (<Popup closePopup={this.props.onCancel} isBuyButton={this.props.isBuyButton} onAccept={this.props.onAccept} />)\r\n        }\r\n        else {\r\n          return null;\r\n        }\r\n  }\r\n}\r\n\r\nexport default ZipCode;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nconst BuyButton = ({ notlocalizedtext, disabled, readMore, isShowMore, label, articleNumber, quantityFieldId, href, cssClass, unitcodeFieldId, articleErpstatus, minQuantity, stockquantity, itemstatus, onClick, isQuotationItem, loading }) => {\r\n  \r\n    const [isDisabled, setIsDisabled] = useState(disabled || loading);\r\n    \r\n    useEffect(() => {\r\n        setIsDisabled(disabled || loading);\r\n    }, [disabled, loading]);\r\n\r\n  return (\r\n    articleNumber ? (\r\n      isQuotationItem === \"False\" ? (\r\n        ((!isShowMore) || (isShowMore && !disabled)) ? (\r\n          <button\r\n            className={`${cssClass} ${(isDisabled || loading) ? 'disabled' : ''}`}\r\n            onClick={() => {\r\n              onClick(articleNumber, quantityFieldId, unitcodeFieldId, articleErpstatus, minQuantity, stockquantity, itemstatus);\r\n            }}\r\n            disabled={isDisabled}\r\n          >\r\n            {disabled ? notlocalizedtext : label}\r\n          </button>\r\n        ) : (\r\n          <a className={cssClass} href={href}>\r\n            {readMore}\r\n          </a>\r\n        )\r\n      ) : (\r\n        <a className={cssClass} href={href}>\r\n          {readMore}\r\n        </a>\r\n      )\r\n    ) : (\r\n      <a className={cssClass} href={href}>\r\n        {label}\r\n      </a>\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 ZipCode from '../Components/ZipCode';\r\nimport { add as addToCart } from '../Actions/Cart.action';\r\nimport { translate } from '../Services/translation';\r\n\r\nimport Modal, { Header, Body } from '../Components/Modal';\r\n\r\nString.prototype.format = function () {\r\n    var args = arguments;\r\n    return this.replace(/{(\\d+)}/g, function (match, number) {\r\n        return typeof args[number] != 'undefined'\r\n            ? args[number]\r\n            : match\r\n            ;\r\n    });\r\n};\r\n\r\nclass BuyButtonContainer extends Component {\r\n    constructor(props) {\r\n\r\n        super(props);\r\n        this.buttonRef = React.createRef();\r\n        this.state = {\r\n            buyConfirmModalIsOpen: false,\r\n            buyMinimumQuanityIsOpen: false,\r\n            outOfQuantityConfirmModalIsOpen: false,\r\n            notLocalizedModalIsOpen: false,\r\n            wantedQuantity: 0,\r\n            quantity: undefined,\r\n            loading: false\r\n        }\r\n\r\n        this.toggleBuyConfirmModalIsOpen = this.toggleBuyConfirmModalIsOpen.bind(this);\r\n        this.toggleBuyMinimumQuanityIsOpen = this.toggleBuyMinimumQuanityIsOpen.bind(this);\r\n        this.toggleOutOfQuantityConfirmModalIsOpen = this.toggleOutOfQuantityConfirmModalIsOpen.bind(this);\r\n        this.toggleNotLocalizedModalIsOpen = this.toggleNotLocalizedModalIsOpen.bind(this);\r\n        this.onModalAwnser = this.onModalAwnser.bind(this);\r\n        this.acceptNewQuantity = this.acceptNewQuantity.bind(this)\r\n\r\n        if (this.props.unitcodeSuffixId && document.getElementById(this.props.unitcodeSuffixId + '-unit-price-suffix')) {\r\n            document.getElementById(this.props.unitcodeSuffixId + '-unit-price-suffix').innerText = this.props.currencySymbol + \"/ \" + JSON.parse(this.props.units)[0].unitName;\r\n        }\r\n\r\n        if (this.props.unitcodeFieldId && document.getElementById(this.props.unitcodeFieldId)) {\r\n\r\n            document.getElementById(this.props.unitcodeFieldId).addEventListener('change', (e) => {\r\n\r\n                if (e.target.value && e.target.value > 1 && this.props.quantityFieldId) {\r\n                    document.getElementById(this.props.quantityFieldId).value = 1;\r\n                } else {\r\n                    document.getElementById(this.props.quantityFieldId).value = this.props.minQuantity;\r\n                }\r\n            })\r\n        }\r\n    }\r\n\r\n    toggleBuyConfirmModalIsOpen() {\r\n        this.setState({\r\n            buyConfirmModalIsOpen: !this.state.buyConfirmModalIsOpen\r\n        })\r\n    }\r\n    toggleOutOfQuantityConfirmModalIsOpen() {\r\n        this.setState({\r\n            outOfQuantityConfirmModalIsOpen: !this.state.outOfQuantityConfirmModalIsOpen\r\n        })\r\n    }\r\n\r\n    toggleNotLocalizedModalIsOpen() {\r\n        this.setState({\r\n            notLocalizedModalIsOpen: !this.state.notLocalizedModalIsOpen\r\n        })\r\n    }\r\n\r\n    toggleBuyMinimumQuanityIsOpen(wantedQuantity) {\r\n        if(typeof(wantedQuantity) === 'number')  {\r\n            const quantityToAdd = this.props.minQuantity - (wantedQuantity % this.props.minQuantity)\r\n            const newQuantity = (wantedQuantity + quantityToAdd)\r\n\r\n            this.setState({\r\n                buyMinimumQuanityIsOpen: !this.state.buyMinimumQuanityIsOpen,\r\n                wantedQuantity: wantedQuantity,\r\n                quantity: newQuantity,\r\n            })\r\n        }\r\n        else {\r\n            this.setState({\r\n                buyMinimumQuanityIsOpen: !this.state.buyMinimumQuanityIsOpen,\r\n                quantity: this.state.wantedQuantity\r\n            })\r\n        }\r\n    }\r\n\r\n    acceptNewQuantity() {\r\n        if(this.state) {\r\n            if(this.state.wantedQuantity) {\r\n                const articleNumber = this.props.articleNumber\r\n                document.getElementById(this.props.quantityFieldId).value = this.state.quantity\r\n                this.props.addToCart(this.buttonRef.current, articleNumber, this.state.quantity, this.props.unitcodeFieldId, this.props.articleErpstatus)\r\n                \r\n                this.setState({buyMinimumQuanityIsOpen: false, wantedQuantity:0, quantity:0})\r\n            }\r\n        }\r\n    }\r\n\r\n    onModalAwnser() {\r\n        this.toggleBuyConfirmModalIsOpen();\r\n        var unitCodeValue = this.props.unitcodeFieldId ? document.getElementById(this.props.unitcodeFieldId).value : 1;\r\n        var quantity = this.props.quantityFieldId ? document.getElementById(this.props.quantityFieldId).value * unitCodeValue : 1;\r\n        this.props.addToCart(this.buttonRef.current,\r\n            this.props.articleNumber,\r\n            quantity,\r\n            unitCodeValue,\r\n            this.props.articleErpstatus)\r\n    }\r\n\r\n    async handleButtonClick(buttonRef, articleNumber, quantity, unitcodeFieldId, articleErpstatus) {\r\n        try {\r\n            await this.props.addToCart(buttonRef, articleNumber, quantity, unitcodeFieldId, articleErpstatus);      \r\n        } catch (error) {\r\n            console.error('Error during addToCart:', error);\r\n        }\r\n    }\r\n\r\n    render() {\r\n        const { buyConfirmModalIsOpen, outOfQuantityConfirmModalIsOpen, buyMinimumQuanityIsOpen, notLocalizedModalIsOpen, loading } = this.state;\r\n\r\n        let {\r\n            modalProducthastobeorderTitle,\r\n            modalProducthastobeorderContent,\r\n            modalProducthasexpiredContent,\r\n            modalProducthasexpiredTitle,\r\n            modalProductminquantityContent,\r\n            modalProductminquantityTitle,\r\n            datanotlocalizedtext\r\n        } = this.props;\r\n\r\n        if (!modalProducthastobeorderTitle)\r\n            modalProducthastobeorderTitle = \"\";\r\n\r\n        if (!modalProducthastobeorderContent)\r\n            modalProducthastobeorderContent = \"\";\r\n\r\n        if (!modalProducthasexpiredContent)\r\n            modalProducthasexpiredContent = \"\";\r\n\r\n        if (!modalProducthasexpiredTitle)\r\n            modalProducthasexpiredTitle = \"\";\r\n\r\n        if (!modalProductminquantityContent)\r\n            modalProductminquantityContent = \"\";\r\n\r\n        if (!modalProductminquantityTitle)\r\n            modalProductminquantityTitle = \"\";\r\n\r\n\r\n        var quantity = 1;\r\n\r\n        if (this.props.quantityFieldId) {\r\n            var quantityDomElement = document.getElementById(this.props.quantityFieldId);\r\n\r\n            if (quantityDomElement) {\r\n                quantity = quantityDomElement.value;\r\n            }\r\n        }\r\n\r\n        const isShowMore = this.props.readmore != \"\" ? true : false;\r\n        const disabled = (!this.props.isbuyable);\r\n\r\n        return (\r\n            <div>\r\n                <Modal\r\n                    isOpen={buyConfirmModalIsOpen}\r\n                    onCancel={this.toggleBuyConfirmModalIsOpen}\r\n                    onAccept={this.onModalAwnser}\r\n                >\r\n                    <Header>\r\n                        <span className='h2'> {modalProducthastobeorderTitle}</span>\r\n                    </Header>\r\n                    <Body>\r\n                        {modalProducthastobeorderContent && modalProducthastobeorderContent}\r\n                    </Body>\r\n                </Modal>\r\n\r\n                <Modal\r\n                    isOpen={outOfQuantityConfirmModalIsOpen}\r\n                    onCancel={this.toggleOutOfQuantityConfirmModalIsOpen}\r\n                    onAccept={this.toggleOutOfQuantityConfirmModalIsOpen}\r\n                >\r\n                    <Header>\r\n                        <span className='h2'>{modalProducthasexpiredTitle}</span>\r\n                    </Header>\r\n                    <Body>\r\n                        {modalProducthasexpiredContent && modalProducthasexpiredContent.replace(\"stockQuantity\", this.props.stockquantity)}\r\n                    </Body>\r\n                </Modal>\r\n\r\n                <Modal\r\n                    isOpen={buyMinimumQuanityIsOpen}\r\n                    onCancel={this.toggleBuyMinimumQuanityIsOpen}\r\n                    onAccept={this.acceptNewQuantity}\r\n                >\r\n                    <Header>\r\n                        <span className='h2'>{modalProductminquantityTitle}</span>\r\n                    </Header>\r\n                    <Body>{modalProductminquantityContent && modalProductminquantityContent.replace(\"minQuantity\", this.props.minQuantity).replace(\"addThis\", this.props.minQuantity - (quantity % this.props.minQuantity))}</Body>\r\n\r\n                </Modal>\r\n\r\n        {notLocalizedModalIsOpen && <ZipCode onCancel={this.toggleNotLocalizedModalIsOpen} isBuyButton={true} notLocalizedModalIsOpen={notLocalizedModalIsOpen} onAccept={() => this.props.addToCart(this.buttonRef.current, this.props.articleNumber, this.props.quantity, this.props.unitcodeFieldId, this.props.articleErpstatus)}/>}\r\n\r\n                <span ref={this.buttonRef}>\r\n                    <BuyButton {...this.props}\r\n                        isShowMore={isShowMore}\r\n                        readMore={this.props.readmore}\r\n                        isQuotationItem={this.props.isquotationitem}\r\n                        disabled={disabled}\r\n                        loading={loading}\r\n                        onClick={(articleNumber, quantityFieldId, unitcodeFieldId, articleErpstatus, minQuantity, stockquantity, itemstatus) => {\r\n                            this.setState({ loading: true });\r\n                            \r\n                            var unitCodeValue = unitcodeFieldId ? document.getElementById(unitcodeFieldId).value : 1;\r\n                            var quantity = quantityFieldId ? document.getElementById(quantityFieldId).value * unitCodeValue : 1;\r\n\r\n                            if(this.state.quantity)\r\n                            quantity = this.state.quantity\r\n\r\n                            //fallback to 1 if someone plays along\r\n                            if(quantity <= 0){\r\n                                quantity = 1\r\n                            }\r\n                            \r\n                            var exsistingCartItem = this.props.orderRows.find(v => v.articleNumber == articleNumber);\r\n                            var existingCartItemQuantity = 0;\r\n                            if(!exsistingCartItem){\r\n                                exsistingCartItem = this.props.orderRows.find(v => v.articleNumber == this.props.itemNo);\r\n                            }\r\n                            \r\n                            if(exsistingCartItem){\r\n                                existingCartItemQuantity = exsistingCartItem.quantity;\r\n                            }\r\n\r\n                            if ((itemstatus.toString().toLowerCase() == \"expired\" || itemstatus.toString().toLowerCase() == \"expires\") && (quantity + existingCartItemQuantity) > stockquantity) {\r\n                                this.toggleOutOfQuantityConfirmModalIsOpen();\r\n                            }\r\n                            else if (quantity % this.props.minQuantity !== 0) {\r\n                                this.toggleBuyMinimumQuanityIsOpen(quantity);\r\n                            }\r\n                            else if (this.props.articleErpstatus == 4) {\r\n                                this.toggleBuyConfirmModalIsOpen();\r\n                            }\r\n                            else if (!this.props.isLocalized) {\r\n                                this.toggleNotLocalizedModalIsOpen();\r\n                            }\r\n                            else {\r\n                                this.handleButtonClick(this.buttonRef.current, articleNumber, quantity, unitcodeFieldId, articleErpstatus);\r\n                            }\r\n\r\n                            setTimeout(() => {\r\n                                this.setState({ loading: false });\r\n                              }, 2000);\r\n                        }\r\n                        } />\r\n                </span>\r\n            </div>\r\n        );\r\n    }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n    return {\r\n        isLocalized: state.localized.isLocalized,\r\n        orderRows: state.cart.orderRows\r\n    }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n    return {\r\n        addToCart: (buttonDomNode, articleNumber, quantity, unitCodeFieldId, erpStatus) => {\r\n\r\n            const nodeIdToShowNotification = buttonDomNode.id = Date.now();\r\n\r\n            dispatch(addToCart({\r\n                articleNumber,\r\n                quantity,\r\n                nodeIdToShowNotification,\r\n                notificationMessage: translate('tooltip.addedtocart'),\r\n                hash: Date.now(),\r\n                erpStatus\r\n            }))\r\n        }\r\n    }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(BuyButtonContainer);\r\n"],"sourceRoot":""}