{"version":3,"sources":["webpack:///./Scripts/Components/Cart.js","webpack:///./Scripts/Components/CountryPicker.js","webpack:///./Scripts/Components/Checkout.PrivateCustomerInfo.js","webpack:///./Scripts/Components/Checkout.BusinessCustomerInfo.js","webpack:///./Scripts/Components/Checkout.DeliveryMethods.js","webpack:///./Scripts/Components/Checkout.PaymentMethods.js","webpack:///./Scripts/Components/Checkout.OrderInfo.js","webpack:///./Scripts/AdyenDropin/AdyenDropinWidget.js","webpack:///./Scripts/Components/Payments/PaymentWidget.js","webpack:///./Scripts/Services/Ingrid.service.js","webpack:///./Scripts/Components/IngridDeliveryCheckoutWidget.js","webpack:///./Scripts/Containers/Checkout.container.js"],"names":["ProductImage","url","image","name","className","href","src","alt","GiftWrappingInfo","articleNumber","setGiftWrappingInfo","initialValue","useState","giftWrapText","setGiftWrapText","translate","value","onChange","event","target","onBlur","result","ProductName","content","title","ProductPrice","campaignPrice","price","totalPrice","ProductQuantity","isFreeGift","quantity","rowSystemId","updateOrderRowQuantity","QuantityChanger","updateQuantity","updatedQuantity","ProductRemove","removingRow","onDeleteRequest","removeOrderRow","onClick","ProductTotal","ProductInfoContainer","children","ProductCartRow","subRow","GiftWrapping","addToCart","orderRow","id","type","checked","noMiniCartUpdate","htmlFor","translateWithFallback","Cart","props","state","editingQuantity","showDeleteButton","this","setState","previousState","giftWrapping","orderRows","hasGiftWrappingRow","giftWrappingOrderRow","find","row","map","key","comments","bind","Component","CountryOption","data","label","imgSrc","Option","style","height","marginLeft","CountryPicker","customerDetails","labelName","length","components","SingleValue","options","Object","values","uniqueCountryLangPairs","defaultValue","country","setCookie","window","__litium","geoLocationData","cookieName","put","location","isSearchable","styles","container","provided","marginBottom","control","borderRadius","border","borderColor","boxShadow","option","margin","padding","indicatorContainer","color","menu","top","CheckoutPrivateCustomerInfo","signUp","authenticated","onSignUpChange","isGiftWrappingEnabled","errors","input","cssClass","stateKey","autoComplete","placeholder","toLowerCase","data-error-for","deliveryToCountryWithSpecialChars","some","c","CheckoutBusinessCustomerInfo","companyAddresses","companyName","selectedCompanyAddressId","setSelectedCompanyAddress","disabled","selectedAddress","address","systemId","getCountry","addressCountry","constants","countryLanguagePairs","attributes","alpha2","text","split","zipCode","city","CheckoutDeliveryMethods","deliveryMethods","selectedId","method","displayName","description","formattedPrice","CheckoutPaymentMethods","paymentMethods","CheckoutOrderInfo","cart","orderTotal","deliveryCostValue","deliveryCost","paymentCostValue","paymentCost","discountValue","discount","grandTotal","vat","AdyenDropinWidget","paymentContainer","React","createRef","paymentComponent","onSubmit","onAdditionalDetails","onError","dropinConfig","JSON","parse","responseString","configuration","paymentMethodsResponse","originKey","locale","environment","paymentMethodsConfiguration","card","hasHolderName","holderNameRequired","showPayButton","setWidgetConfig","prevProps","checkout","adyen","isSubmitting","submit","config","refreshComponent","AdyenCheckout","unmount","create","mount","current","details","handleAction","dropin","payload","reCaptchaSiteKey","trim","grecaptcha","ready","execute","action","then","token","post","response","json","success","isValid","catch","ex","error","submitted","ref","connect","dispatch","adyenSubmitted","submitDone","additionalDetails","scriptPattern","scriptFilePattern","PaymentWidget","renderWidget","paymentSession","WidgetCheckout","DynamicComponent","loader","args","extractScripts","executeScript","includeScript","domString","matches","html","scripts","scriptFiles","exec","replace","push","domId","scriptContent","script","document","createElement","appendChild","createTextNode","e","getElementById","srciptUrl","PureComponent","getSession","get","updateSession","status","undefined","replaceScriptNode","node","tagName","isScriptNode","isExternalScript","parentNode","replaceChild","innerHTML","i","setAttribute","cloneScriptNode","childNodes","IngridDeliveryCheckoutWidget","updateDependencies","onCustomerDetailsChange","ingridWidgetLoaded","setIngridWidgetLoaded","htmlSnippet","setHtmlSnippet","previousUpdateDeps","setPreviousUpdateDeps","wrapperRef","useRef","useDispatch","useEffect","initIngrid","session","handleApiError","anyDepsHasChanged","idx","isEqual","updateIngridSession","onShippingMethodChanged","_sw","api","suspend","res","console","log","loadCart","resume","useCallback","debounce","ingridSession","onDeliveryAddressChanged","customerData","deliveryAddress","delivery_address","street","street_number","filter","s","join","first_name","last_name","postal_code","phone_number","email","err","errorMessage","message","querySelector","on","meta","price_changed","shipping_method_changed","pickup_location_changed","external_method_id_changed","delivery_address_changed","dangerouslySetInnerHTML","__html","privateCustomerAdditionalDetailsSchema","object","shape","acceptTermsOfCondition","boolean","required","oneOf","selectedDeliveryMethod","string","privateCustomerAddressSchema","phoneNumber","mixed","notOneOf","lastName","firstName","privateCustomerAlternativeAddressSchema","businessCustomerDetailsSchema","CheckoutContainer","showVoucherField","ingridError","selectedPaymentMethod","setPayment","alternativeAddress","currentCountryAlpha2","isBusinessCustomer","notCustomerDetailFields","addressPath","path","indexOf","submitError","submitRequest","validate","checkAltAddress","showAlternativeAddress","checkoutMode","isNewsLetterSubscriber","paymentWidget","subscribeToNewsLetter","ingridDeliveryCheckoutId","ingridIsSelectedDeliveryMethod","isChangeable","renderCartSection","renderCampaignCodeSection","displayCustomerDetails","renderCustomerDetailsSection","displayDeliveryMethods","renderDeliveryMethodsSection","renderIngridDeliveryCheckout","renderPaymentMethodsSection","termsUrl","verify","companyCustomers","placeOrder","loginUrl","redirectUrl","errorKeys","keys","errorNode","inputNode","parentElement","setTimeout","focus","scrollIntoView","behavior","block","toggleVoucherCodeField","setCampaignCode","submitCampaignCode","privateCustomerInfoComponent","businessCustomerInfoComponent","both","setBusinessCustomer","setIngridError","setDelivery","onCampaignCodeChange","onSubmitCampaignCode","code","setCountry","setOrderNote","note","setGiftWrapping","setAlternativeAddress","accept","subscribe","additionalInfo","artNo","callback","orderId","setSignUp","toggleTemporaryDeliveryAddress","useTemporaryDeliveryAddress","companyAddressId","propName","setCustomerDetails","params","cartActions","reloadPayment","rowId"],"mappings":"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","file":"5.1f3d298e6c69af78cd14.js","sourcesContent":["import React, { Component, Fragment, useState } from 'react'\r\nimport QuantityChanger from '../Components/QuantityChanger'\r\nimport { translate, translateWithFallback } from '../Services/translation'\r\n\r\nfunction ProductImage({ url, image, name }) {\r\n    return (\r\n        <div className=\"checkout-cart__image-container\">\r\n            <a href={url}>\r\n                <img className=\"checkout-cart__image\" src={image} alt={name} />\r\n            </a>\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction GiftWrappingInfo({ articleNumber, setGiftWrappingInfo, initialValue = '' }) {\r\n    const [giftWrapText, setGiftWrapText] = useState(initialValue);\r\n\r\n    const addGiftWrappingInfo = (value) => {\r\n        setGiftWrappingInfo(value, articleNumber, (result) => {\r\n            setGiftWrapText(result);\r\n        });\r\n    }\r\n\r\n    return (\r\n        <div className=\"checkout-cart__product-giftwrappinginfo\">\r\n            <h5>{translate('checkout.cart.giftwrappinginfo')}</h5>\r\n            <textarea className=\"checkout-cart__product-giftwrappinginfo--textarea\" value={giftWrapText} onChange={(event) => setGiftWrapText(event.target.value)}\r\n                onBlur={async (event) => addGiftWrappingInfo(event.target.value)} />\r\n            <h6>{translate('checkout.cart.giftwrappingmaxchars')}</h6>\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction ProductName({ url, name }) {\r\n    const content = (\r\n        <div className=\"checkout-cart__product-name\" title={name}>\r\n            {name}\r\n        </div>\r\n    )\r\n\r\n    return (\r\n        <div className=\"checkout-cart__product-name-container\">\r\n            {url ? <a href={url}>{content}</a> : content}\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction ProductPrice({ campaignPrice, price, totalPrice }) {\r\n    return (\r\n        <div className=\"checkout-cart__product-price-container\">\r\n            <div className=\"checkout-cart__product-price\">\r\n                {campaignPrice && (\r\n                    <Fragment>\r\n                        <div className=\"checkout-cart__product-price--campaign\">\r\n                            {campaignPrice}\r\n                        </div>\r\n                        <div className=\"checkout-cart__product-price--old\">\r\n                            {price}\r\n                        </div>\r\n                    </Fragment>\r\n                )}\r\n                {!campaignPrice && price}\r\n            </div>\r\n            <div className=\"checkout-cart__product-price checkout-cart__product-price--total\">\r\n                {totalPrice}\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction ProductQuantity({\r\n    isFreeGift,\r\n    quantity,\r\n    rowSystemId,\r\n    updateOrderRowQuantity,\r\n}) {\r\n    return (\r\n        <div className=\"checkout-cart__product-quantity-container\">\r\n            {isFreeGift ? (\r\n                <div>{quantity}</div>\r\n            ) : (\r\n                <QuantityChanger\r\n                    {...{\r\n                        quantity,\r\n                        updateQuantity: (updatedQuantity) =>\r\n                            updateOrderRowQuantity(\r\n                                rowSystemId,\r\n                                updatedQuantity\r\n                            ),\r\n                        rowSystemId,\r\n                    }}\r\n                />\r\n            )}\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction ProductRemove({\r\n    isFreeGift,\r\n    rowSystemId,\r\n    removingRow,\r\n    onDeleteRequest,\r\n    removeOrderRow,\r\n}) {\r\n    return (\r\n        <div className=\"checkout-cart__product-remove-container\">\r\n            {!isFreeGift &&\r\n                (!removingRow[rowSystemId] ? (\r\n                    <a\r\n                        className=\"table__icon icon-bin\"\r\n                        onClick={() => onDeleteRequest(rowSystemId, true)}\r\n                        title={translate('general.remove')}\r\n                    ></a>\r\n                ) : (\r\n                    <Fragment>\r\n                        <a\r\n                            className=\"table__icon icon-check\"\r\n                            onClick={() => removeOrderRow(rowSystemId)}\r\n                            title={translate('general.ok')}\r\n                        ></a>\r\n                        <a\r\n                            className=\"table__icon icon-wrong\"\r\n                            onClick={() => onDeleteRequest(rowSystemId, false)}\r\n                            title={translate('general.cancel')}\r\n                        ></a>\r\n                    </Fragment>\r\n                ))}\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction ProductTotal({ campaignPrice, totalPrice }) {\r\n    return (\r\n        <div className=\"checkout-cart__product-total-price-container\">\r\n            <div className=\"checkout-cart__product-price\">\r\n                {campaignPrice && (\r\n                    <div className=\"checkout-cart__product-price--campaign\">\r\n                        {totalPrice}\r\n                    </div>\r\n                )}\r\n                {!campaignPrice && totalPrice}\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction ProductInfoContainer({ children }) {\r\n    return (\r\n        <div className=\"checkout-cart__product-info-container\">\r\n            {children}\r\n            <div className=\"checkout-cart__break-row\"></div>\r\n        </div>\r\n    )\r\n}\r\n\r\nfunction ProductCartRow({ children, subRow = null }) {\r\n    return (\r\n        <>\r\n            <div className=\"checkout-cart__row\">{children}</div>\r\n            {subRow}\r\n            <hr />\r\n        </>\r\n    )\r\n}\r\n\r\nfunction GiftWrapping({ addToCart, removeOrderRow, orderRow, id, name }) {\r\n    const onChange = (event) => {\r\n        if (event.target.checked) {\r\n            addToCart({\r\n                articleNumber: id,\r\n                quantity: 1,\r\n                noMiniCartUpdate: true,\r\n            })\r\n        } else if (orderRow) {\r\n            removeOrderRow(orderRow.rowSystemId)\r\n        }\r\n    }\r\n    return (\r\n        <ProductCartRow>\r\n            <input\r\n                className=\"checkout__checkbox-input\"\r\n                type=\"checkbox\"\r\n                id=\"giftWrapping\"\r\n                checked={orderRow != null}\r\n                onChange={onChange}\r\n            />\r\n            <label className=\"checkout__checkbox-label\" htmlFor=\"giftWrapping\">\r\n                {translateWithFallback('checkout.giftwrapping', name)}\r\n            </label>\r\n        </ProductCartRow>\r\n    )\r\n}\r\n\r\nclass Cart extends Component {\r\n    constructor(props) {\r\n        super(props)\r\n        this.state = {\r\n            editingQuantity: {},\r\n            removingRow: {},\r\n        }\r\n    }\r\n\r\n    onDeleteRequest(rowSystemId, showDeleteButton) {\r\n        this.setState((previousState) => ({\r\n            ...previousState,\r\n            removingRow: {\r\n                ...previousState.removingRow,\r\n                [rowSystemId]: showDeleteButton,\r\n            },\r\n        }))\r\n    }\r\n\r\n    render() {\r\n        const { removingRow } = this.state\r\n        const {\r\n            addToCart,\r\n            giftWrapping,\r\n            updateOrderRowQuantity,\r\n            removeOrderRow,\r\n            orderRows,\r\n            setGiftWrappingInfo,\r\n            hasGiftWrappingRow,\r\n        } = this.props\r\n\r\n        const giftWrappingOrderRow =\r\n        giftWrapping &&\r\n        orderRows.find((row) => row.articleNumber === giftWrapping.id)\r\n\r\n        return (\r\n            <div className=\"checkout__section\">\r\n                {orderRows.map((row) => (<>\r\n                    <ProductCartRow key={row.rowSystemId} subRow={giftWrappingOrderRow && giftWrappingOrderRow.articleNumber == row.articleNumber ? <GiftWrappingInfo articleNumber={row.articleNumber} setGiftWrappingInfo={setGiftWrappingInfo} initialValue={row.comments}/> : null}>\r\n                        <ProductImage {...row} />\r\n                        <ProductInfoContainer> \r\n                            <ProductName {...row} />\r\n                            <ProductPrice {...row} />\r\n                            <ProductQuantity\r\n                                {...row}\r\n                                updateOrderRowQuantity={updateOrderRowQuantity}\r\n                            />\r\n                            <ProductRemove\r\n                                {...row}\r\n                                removingRow={removingRow}\r\n                                onDeleteRequest={this.onDeleteRequest.bind(\r\n                                    this\r\n                                )}\r\n                                removeOrderRow={removeOrderRow}\r\n                            />\r\n                            <ProductTotal {...row} />\r\n                        </ProductInfoContainer>\r\n                    </ProductCartRow>\r\n                    </>\r\n                ))}\r\n                {giftWrapping && (!hasGiftWrappingRow || giftWrappingOrderRow == null) && (\r\n                    <GiftWrapping\r\n                        {...giftWrapping}\r\n                        orderRow={giftWrappingOrderRow}\r\n                        addToCart={addToCart}\r\n                        removeOrderRow={removeOrderRow}\r\n                    />\r\n                )}\r\n            </div>\r\n        )\r\n    }\r\n}\r\n\r\nexport default Cart\r\n","import React from \"react\";\r\nimport { translate } from \"../Services/translation\";\r\nimport { put } from \"../Services/http\";\r\nimport { setCookie } from \"../Services/cookieService\";\r\nimport Select, { components } from 'react-select';\r\nimport { uniqueCountryLangPairs } from \"../constants\";\r\n\r\nfunction CountryOption({ data, ...props }) {\r\n    const { label, value, imgSrc } = data\r\n    return (\r\n        <components.Option {...props}>\r\n            <img src={imgSrc} style={{ height: '26px' }} />\r\n            <span style={{ marginLeft: '10px' }}>{label}</span>\r\n        </components.Option>\r\n    )\r\n}\r\n\r\nconst CountryPicker = (props) => {\r\n    const { customerDetails = {}, labelName } = props;\r\n    \r\n    return (<>\r\n        {labelName.length > 0 && <label className=\"form__label\" htmlFor=\"country\">\r\n            {translate(labelName)}\r\n        </label>}\r\n        <Select\r\n            components={{ Option: CountryOption, SingleValue: CountryOption,}}\r\n            options={Object.values(uniqueCountryLangPairs)}\r\n            defaultValue={uniqueCountryLangPairs[customerDetails.country]}\r\n            onChange={async ({ value }) => {\r\n                setCookie(\r\n                    window.__litium.geoLocationData\r\n                        .cookieName,\r\n                    value\r\n                )\r\n                await put(\r\n                    `/api/navigation/setCountry/${value}`\r\n                )\r\n                window.location =\r\n                    uniqueCountryLangPairs[value].href\r\n            }}\r\n            isSearchable={false}\r\n            styles={{\r\n                container: (provided) => ({...provided,marginBottom: '24px',}),\r\n                control: (provided) => ({...provided,borderRadius: 0,\r\n                    ':hover': {\r\n                        border: '1px solid black',\r\n                    },\r\n                    ':focus': {\r\n                        border: '1px solid black',\r\n                    },\r\n                    ':active': {\r\n                        border: '1px solid black',\r\n                    },\r\n                    borderColor: 'rgb(199, 199, 199)',\r\n                    boxShadow: 'none',\r\n                }),\r\n                option: (provided) => ({...provided,\r\n                    margin: '8px 0px -6px 7px',\r\n                    padding: '4px 2px 0px 3px',\r\n                }),\r\n                indicatorContainer: (provided) => ({...provided,\r\n                    color: 'rgb(199, 199, 199)',\r\n                }),\r\n                menu: (provided) => ({...provided,\r\n                    borderRadius: 0,\r\n                    top: '90%',\r\n                }),\r\n            }}\r\n        />\r\n    </>)\r\n};\r\n\r\nexport default CountryPicker;","import React from 'react'\r\nimport { uniqueCountryLangPairs } from '../constants'\r\nimport { translate } from '../Services/translation'\r\nimport { put } from '../Services/http'\r\nimport Select, { components } from 'react-select'\r\nimport { setCookie } from '../Services/cookieService'\r\nimport CountryPicker from './CountryPicker'\r\n\r\nfunction CountryOption({ data, ...props }) {\r\n    const { label, value, imgSrc } = data\r\n    return (\r\n        <components.Option {...props}>\r\n            <img src={imgSrc} style={{ height: '26px' }} />\r\n            <span style={{ marginLeft: '10px' }}>{label}</span>\r\n        </components.Option>\r\n    )\r\n}\r\n\r\nconst CheckoutPrivateCustomerInfo = (props) => {\r\n    const {\r\n        customerDetails = {},\r\n        signUp,\r\n        authenticated,\r\n        onChange,\r\n        onSignUpChange,\r\n        isGiftWrappingEnabled,\r\n        errors = {},\r\n    } = props\r\n    const input = (\r\n        cssClass,\r\n        stateKey,\r\n        id,\r\n        autoComplete = 'on',\r\n        placeholder = null,\r\n        type = 'text'\r\n    ) => (\r\n        <div className={cssClass}>\r\n            <label className=\"form__label\" htmlFor={`${stateKey}-${id}`}>\r\n                {translate(`checkout.customerinfo.${id.toLowerCase()}`)}&#8203;\r\n            </label>\r\n            <input\r\n                className=\"form__input\"\r\n                id={`${stateKey}-${id}`}\r\n                name={`${stateKey}-${id}`}\r\n                type={type}\r\n                value={(props[stateKey] || {})[id] || ''}\r\n                placeholder={placeholder}\r\n                autoComplete={autoComplete}\r\n                onChange={(event) => onChange(stateKey, id, event.target.value)}\r\n            />\r\n            {errors[`${stateKey}-${id}`] && (\r\n                <span\r\n                    className=\"form__validator--error form__validator--top-narrow\"\r\n                    data-error-for={`${stateKey}-${id}`}\r\n                >\r\n                    {errors[`${stateKey}-${id}`][0]}\r\n                </span>\r\n            )}\r\n        </div>\r\n    )\r\n\r\n    const deliveryToCountryWithSpecialChars = [\r\n        'AZ',\r\n        'BY',\r\n        'CN',\r\n        'GR',\r\n        'HK',\r\n        'IN',\r\n        'ID',\r\n        'IL',\r\n        'JP',\r\n        'KZ',\r\n        'MY',\r\n        'RU',\r\n        'KR',\r\n        'TW',\r\n        'TH',\r\n        'UA',\r\n        'AE',\r\n    ].some((c) => c === customerDetails.country)\r\n\r\n    return (\r\n        <div className=\"checkout__section\">\r\n            <div className=\"small-12 checkout-customer__information\">\r\n                {deliveryToCountryWithSpecialChars && (\r\n                    <div className=\"small-12 checkout-customer__information--input-info\">\r\n                        <i className=\"fa fa-info\"></i>\r\n                        {translate('checkout.customerinfo.input.info')}\r\n                    </div>\r\n                )}\r\n                <div className=\"small-12 medium-6\">\r\n                    <div className=\"row-inner\">\r\n                        {input('small-6 columns','customerDetails','firstName','billing given-name')}\r\n                        {input('small-6 columns','customerDetails','lastName','billing family-name')}\r\n                        {input('small-12 columns','customerDetails','address','billing street-address')}\r\n                        {input('small-12 columns', 'customerDetails', 'careOf')}\r\n                        {input('small-6 columns','customerDetails','zipCode','billing postal-code')}\r\n                        {input('small-6 columns','customerDetails','city','billing address-level2')}\r\n                        <div className='small-12 columns'>{<CountryPicker customerDetails={customerDetails} labelName=\"checkout.customerinfo.country\" />}</div>\r\n                        {input('small-12 columns','customerDetails','phoneNumber','billing tel')}\r\n                        {input('small-12 columns','customerDetails','email','email')}\r\n                    </div>\r\n                </div>\r\n                {deliveryToCountryWithSpecialChars && (\r\n                    <div className=\"small-12 checkout-customer__information--input-info\">\r\n                        <i className=\"fa fa-info\"></i>\r\n                        {translate('checkout.customerinfo.input.info')}\r\n                    </div>\r\n                )}\r\n            </div>\r\n        \r\n            {isGiftWrappingEnabled && (<>\r\n                <h3>{translate('checkout.otherdelivery.customerinfo.title')}</h3>\r\n                <div className=\"small-12 checkout-customer__alternative-address\">\r\n                    <div className=\"small-12 medium-6\">\r\n                        <div className=\"row-inner\">\r\n                            {input('small-6 columns', 'alternativeAddress', 'firstName', 'shipping given-name')}\r\n                            {input('small-6 columns', 'alternativeAddress', 'lastName', 'shipping family-name')}\r\n                            {input('small-12 columns', 'alternativeAddress', 'address', 'shipping street-address')}\r\n                            {input('small-12 columns', 'alternativeAddress', 'careOf')}\r\n                            {input('small-6 columns', 'alternativeAddress', 'zipCode', 'shipping postal-code')}\r\n                            {input('small-6 columns', 'alternativeAddress', 'city', 'shipping address-level2')}\r\n                            <div className=\"small-12 columns\">\r\n                                <label className=\"form__label\" htmlFor=\"country2\">{translate('checkout.customerinfo.country')}</label>\r\n                                <Select\r\n                                    components={{ Option: CountryOption, SingleValue: CountryOption,}}\r\n                                    options={Object.values(uniqueCountryLangPairs)}\r\n                                    defaultValue={uniqueCountryLangPairs[customerDetails.country]}\r\n                                    onChange={(event) => onChange('alternativeAddress', 'country', event.value)}\r\n                                    isSearchable={false}\r\n                                    styles={{container: (provided) => ({...provided,marginBottom: '24px',}),\r\n                                        control: (provided) => ({...provided,borderRadius: 0,\r\n                                            ':hover': {\r\n                                                border: '1px solid black',\r\n                                            },\r\n                                            ':focus': {\r\n                                                border: '1px solid black',\r\n                                            },\r\n                                            ':active': {\r\n                                                border: '1px solid black',\r\n                                            },\r\n                                            borderColor: 'rgb(199, 199, 199)',\r\n                                            boxShadow: 'none',\r\n                                        }),\r\n                                        option: (provided) => ({...provided,\r\n                                            margin: '8px 0px -6px 7px',\r\n                                            padding: '4px 2px 0px 3px',\r\n                                        }),\r\n                                        indicatorContainer: (provided) => ({...provided,\r\n                                            color: 'rgb(199, 199, 199)',\r\n                                        }),\r\n                                        menu: (provided) => ({...provided,\r\n                                            borderRadius: 0,\r\n                                            top: '90%',\r\n                                        }),\r\n                                    }}\r\n                                />\r\n                            </div>\r\n                            {input('small-12 columns', 'alternativeAddress', 'phoneNumber', 'shipping tel')}\r\n                            {input('small-12 columns','alternativeAddress','email','email')}\r\n                        </div>\r\n                    </div>\r\n                </div></>\r\n            )}\r\n\r\n            {!authenticated && (\r\n                <div className=\"small-12\">\r\n                    <div className=\"row-inner\">\r\n                        <div className=\"small-12 columns\">\r\n                            <input\r\n                                className=\"checkout__checkbox-input\"\r\n                                type=\"checkbox\"\r\n                                id=\"signupandlogin\"\r\n                                checked={signUp}\r\n                                onChange={(event) => onSignUpChange(event.target.checked)}\r\n                            />\r\n                            <label className=\"checkout__checkbox-label\"htmlFor=\"signupandlogin\">\r\n                                {translate('checkout.customerinfo.signupandlogin')}\r\n                            </label>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default CheckoutPrivateCustomerInfo\r\n","import React from 'react'\r\nimport { translate } from '../Services/translation'\r\nimport constants from '../constants'\r\n\r\nconst CheckoutBusinessCustomerInfo = (props) => {\r\n    const {\r\n        companyAddresses = [],\r\n        companyName,\r\n        authenticated,\r\n        selectedCompanyAddressId,\r\n        onChange,\r\n        setSelectedCompanyAddress,\r\n        errors = {},\r\n    } = props\r\n    const input = (\r\n        cssClass,\r\n        stateKey,\r\n        id,\r\n        autoComplete = null,\r\n        placeholder = null,\r\n        type = 'text'\r\n    ) => (\r\n        <div className={cssClass}>\r\n            <label className=\"form__label\" htmlFor={`${stateKey}-${id}`}>\r\n                {translate(`checkout.customerinfo.${id.toLowerCase()}`)}&#8203;\r\n            </label>\r\n            <input\r\n                className=\"form__input\"\r\n                disabled={!authenticated}\r\n                id={`${stateKey}-${id}`}\r\n                name={`${stateKey}-${id}`}\r\n                type={type}\r\n                value={(props[stateKey] || {})[id] || ''}\r\n                placeholder={placeholder}\r\n                autoComplete={autoComplete}\r\n                onChange={(event) => onChange(stateKey, id, event.target.value)}\r\n            />\r\n            {errors[`${stateKey}-${id}`] && (\r\n                <span\r\n                    className=\"form__validator--error form__validator--top-narrow\"\r\n                    data-error-for={`${stateKey}-${id}`}\r\n                >\r\n                    {errors[`${stateKey}-${id}`][0]}\r\n                </span>\r\n            )}\r\n        </div>\r\n    )\r\n    const selectedAddress =\r\n        selectedCompanyAddressId && companyAddresses\r\n            ? companyAddresses.find(\r\n                  (address) => address.systemId === selectedCompanyAddressId\r\n              )\r\n            : null\r\n    const getCountry = (address) => {\r\n        const addressCountry = constants.countryLanguagePairs\r\n            ? constants.countryLanguagePairs.find(\r\n                  (country) => country.attributes.alpha2 === address.country\r\n              )\r\n            : null\r\n        return addressCountry\r\n            ? addressCountry.text.split(' (')[0]\r\n            : address.country\r\n    }\r\n    return (\r\n        <div className=\"checkout__section\">\r\n            <div className=\"small-12 medium-6\">\r\n                <div className=\"row-inner\">\r\n                    <div className=\"small-12 columns\">\r\n                        <h5>{translate('checkout.customerinfo.reference')}</h5>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row-inner\">\r\n                    {input(\r\n                        'small-6 columns',\r\n                        'customerDetails',\r\n                        'firstName',\r\n                        'billing given-name'\r\n                    )}\r\n                    {input(\r\n                        'small-6 columns',\r\n                        'customerDetails',\r\n                        'lastName',\r\n                        'billing family-name'\r\n                    )}\r\n                </div>\r\n                <div className=\"row-inner\">\r\n                    {input(\r\n                        'small-12 columns',\r\n                        'customerDetails',\r\n                        'phoneNumber',\r\n                        'billing tel'\r\n                    )}\r\n                </div>\r\n                <div className=\"row-inner\">\r\n                    {input(\r\n                        'small-12 columns',\r\n                        'customerDetails',\r\n                        'email',\r\n                        'email'\r\n                    )}\r\n                </div>\r\n            </div>\r\n            <div className=\"small-12 medium-6\">\r\n                <div className=\"row-inner\">\r\n                    <div className=\"small-12 columns\">\r\n                        <label className=\"form__label\" htmlFor=\"address\">\r\n                            {translate('checkout.customerinfo.address')}\r\n                        </label>\r\n                        <select\r\n                            className=\"form__input\"\r\n                            value={selectedCompanyAddressId || ''}\r\n                            disabled={!authenticated}\r\n                            onChange={(event) =>\r\n                                setSelectedCompanyAddress(\r\n                                    event.target.value,\r\n                                    companyAddresses.find(\r\n                                        (address) =>\r\n                                            address.systemId ===\r\n                                            event.target.value\r\n                                    ).country\r\n                                )\r\n                            }\r\n                        >\r\n                            <option value=\"\" disabled>\r\n                                {translate(\r\n                                    'checkout.customerinfo.companyaddress.placeholder'\r\n                                )}\r\n                            </option>\r\n                            {companyAddresses &&\r\n                                companyAddresses.map((address) => (\r\n                                    <option\r\n                                        value={address.systemId}\r\n                                        key={`companyAddress-${address.systemId}`}\r\n                                    >{`${address.address}, ${\r\n                                        address.zipCode\r\n                                    }, ${address.city}, ${getCountry(\r\n                                        address\r\n                                    )}`}</option>\r\n                                ))}\r\n                        </select>\r\n                        {errors['selectedCompanyAddressId'] && (\r\n                            <span\r\n                                className=\"form__validator--error form__validator--top-narrow\"\r\n                                data-error-for=\"selectedCompanyAddressId\"\r\n                            >\r\n                                {errors['selectedCompanyAddressId'][0]}\r\n                            </span>\r\n                        )}\r\n                    </div>\r\n                </div>\r\n                {selectedAddress && (\r\n                    <div className=\"row-inner\">\r\n                        <div className=\"small-12 columns\">{companyName}</div>\r\n                        <div className=\"small-12 columns\">\r\n                            {selectedAddress.address}\r\n                        </div>\r\n                        <div className=\"small-12 columns\">\r\n                            <span>{selectedAddress.zipCode}</span>&nbsp;\r\n                            <span>{selectedAddress.city}</span>\r\n                        </div>\r\n                        <div className=\"small-12 columns\">\r\n                            {getCountry(selectedAddress)}\r\n                        </div>\r\n                    </div>\r\n                )}\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default CheckoutBusinessCustomerInfo\r\n","import React, { Fragment } from 'react'\r\n\r\nconst CheckoutDeliveryMethods = ({ deliveryMethods, selectedId, onChange }) => (\r\n    <Fragment>\r\n        <section className=\"checkout__section\">\r\n            <div className=\"small-12\">\r\n                {deliveryMethods &&\r\n                    deliveryMethods.map((method) => (\r\n                        <label\r\n                            className=\"checkout__radio-input\"\r\n                            key={method.id}\r\n                        >\r\n                            <input\r\n                                type=\"radio\"\r\n                                name=\"deliveryMethods\"\r\n                                className=\"checkout__radio-input--input\"\r\n                                value={method.id}\r\n                                checked={method.id === selectedId}\r\n                                onChange={() => onChange(method.id)}\r\n                            />\r\n                            <div className=\"checkout__radio-input--text\">\r\n                                <div className=\"checkout__radio-input--name\">\r\n                                    {method.displayName}\r\n                                    <div className=\"checkout__radio-input--decription\">\r\n                                        {method.description}\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"checkout__radio-input--price\">\r\n                                    {method.formattedPrice}\r\n                                </div>\r\n                            </div>\r\n                        </label>\r\n                    ))}\r\n            </div>\r\n        </section>\r\n        <hr />\r\n    </Fragment>\r\n)\r\n\r\nexport default CheckoutDeliveryMethods\r\n","import React, { Fragment } from 'react'\r\nimport { translate } from '../Services/translation'\r\n\r\nconst CheckoutPaymentMethods = ({ paymentMethods, selectedId, onChange }) => (\r\n    <Fragment>\r\n        <section className=\"checkout__section\">\r\n            <div className=\"small-12\">\r\n                {paymentMethods &&\r\n                    paymentMethods.map((method) => (\r\n                        <label\r\n                            className=\"checkout__radio-input\"\r\n                            key={method.id}\r\n                        >\r\n                            <input\r\n                                type=\"radio\"\r\n                                name=\"paymentMethods\"\r\n                                className=\"checkout__radio-input--input\"\r\n                                value={method.id}\r\n                                checked={method.id === selectedId}\r\n                                onChange={() => onChange(method.id)}\r\n                            />\r\n                            <div className=\"checkout__radio-input--text\">\r\n                                <div className=\"checkout__radio-input--name\">\r\n                                    {method.displayName}\r\n                                    <div className=\"checkout__radio-input--decription\">\r\n                                        {method.description}\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"checkout__radio-input--price\">\r\n                                    {method.formattedPrice}\r\n                                </div>\r\n                            </div>\r\n                        </label>\r\n                    ))}\r\n            </div>\r\n        </section>\r\n        <hr />\r\n    </Fragment>\r\n)\r\n\r\nexport default CheckoutPaymentMethods\r\n","import React from 'react'\r\nimport { translate } from '../Services/translation'\r\n\r\nconst CheckoutOrderInfo = ({ cart }) => (\r\n    <div className=\"checkout-order-summary\">\r\n        <h3>{translate('checkout.order.summary')}</h3>\r\n        <div>\r\n            {cart.orderRows &&\r\n                cart.orderRows.map((row) => (\r\n                    <div\r\n                        className=\"checkout-order-summary__row\"\r\n                        key={row.rowSystemId}\r\n                    >\r\n                        <div\r\n                            className=\"checkout-order-summary__row--name\"\r\n                            title={`${row.name}${\r\n                                row.quantity > 1 ? ` x ${row.quantity}` : ''\r\n                            }`}\r\n                        >\r\n                            {row.name}\r\n                            {row.quantity > 1 && ` x ${row.quantity}`}\r\n                        </div>\r\n                        <div className=\"checkout-order-summary__row--price\">\r\n                            {row.totalPrice}\r\n                        </div>\r\n                    </div>\r\n                ))}\r\n        </div>\r\n        <hr />\r\n        <div>\r\n            <div className=\"checkout-order-summary__row\">\r\n                <div className=\"checkout-order-summary__row--name\">\r\n                    {translate('checkout.order.total')}\r\n                </div>\r\n                <div className=\"checkout-order-summary__row--price\">\r\n                    {cart.orderTotal}\r\n                </div>\r\n            </div>\r\n            {cart.deliveryCostValue != 0 && (\r\n                <div className=\"checkout-order-summary__row\">\r\n                    <div className=\"checkout-order-summary__row--name\">\r\n                        {translate('checkout.order.deliverycost')}\r\n                    </div>\r\n                    <div className=\"checkout-order-summary__row--price\">\r\n                        {cart.deliveryCost}\r\n                    </div>\r\n                </div>\r\n            )}\r\n            {cart.paymentCostValue != 0 && (\r\n                <div className=\"checkout-order-summary__row\">\r\n                    <div className=\"checkout-order-summary__row--name\">\r\n                        {translate('checkout.order.paymentcost')}\r\n                    </div>\r\n                    <div className=\"checkout-order-summary__row--price\">\r\n                        {cart.paymentCost}\r\n                    </div>\r\n                </div>\r\n            )}\r\n            {cart.discountValue != 0 && (\r\n                <div className=\"checkout-order-summary__row\">\r\n                    <div className=\"checkout-order-summary__row--name\">\r\n                        {translate('checkout.order.discount')}\r\n                    </div>\r\n                    <div className=\"checkout-order-summary__row--price\">\r\n                        - {cart.discount}\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n        <hr />\r\n        <div>\r\n            <div className=\"checkout-order-summary__row\">\r\n                <div className=\"checkout-order-summary__row--name checkout-order-summary__row--grand-total-name\">\r\n                    {translate('checkout.order.grandTotal')}\r\n                </div>\r\n                <div className=\"checkout-order-summary__row--price checkout-order-summary__row--grand-total-price\">\r\n                    {cart.grandTotal}\r\n                </div>\r\n            </div>\r\n            <div className=\"checkout-order-summary__row\">\r\n                <div className=\"checkout-order-summary__row--name\">\r\n                    {translate('checkout.order.vat')}\r\n                </div>\r\n                <div className=\"checkout-order-summary__row--price\">\r\n                    {cart.vat}\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n)\r\n\r\nexport default CheckoutOrderInfo\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport {\r\n    setWidgetConfig,\r\n    submit,\r\n    adyenSubmitted,\r\n    additionalDetails,\r\n} from './AdyenDropin.action';\r\nimport { submitError, submitDone } from '../Actions/Checkout.action';\r\nimport { post } from '../Services/http';\r\n\r\nclass AdyenDropinWidget extends Component {\r\n    constructor(props) {\r\n        super(props);\r\n        this.paymentContainer = React.createRef();\r\n        this.paymentComponent = null;\r\n\r\n        this.onSubmit = this.onSubmit.bind(this);\r\n        this.onAdditionalDetails = this.onAdditionalDetails.bind(this);\r\n        this.onError = this.onError.bind(this);\r\n    }\r\n\r\n    componentDidMount() {\r\n        var dropinConfig = JSON.parse(this.props.responseString);\r\n\r\n        const configuration = {\r\n            paymentMethodsResponse: dropinConfig.paymentMethodsResponse,\r\n            originKey: dropinConfig.originKey,\r\n            locale: dropinConfig.locale,\r\n            environment: dropinConfig.environment,\r\n            paymentMethodsConfiguration: {\r\n                card: {\r\n                    hasHolderName: true,\r\n                    holderNameRequired: true,\r\n                }\r\n            },\r\n            showPayButton: true,\r\n        };\r\n\r\n        this.props.setWidgetConfig(configuration);\r\n    }\r\n\r\n    componentDidUpdate(prevProps) {\r\n        if (\r\n            this.paymentComponent &&\r\n            this.props.checkout.adyen.isSubmitting &&\r\n            this.props.checkout.isSubmitting\r\n        ) {\r\n            this.paymentComponent.submit();\r\n        };\r\n\r\n        var { config, refreshComponent } = this.props.checkout.adyen;\r\n\r\n        if (\r\n            config &&\r\n            (!prevProps.checkout.adyen ||\r\n                config !== prevProps.checkout.adyen.config ||\r\n                refreshComponent !== prevProps.checkout.adyen.refreshComponent)\r\n        ) {\r\n            const configuration = {\r\n                ...config,\r\n                onSubmit: this.onSubmit,\r\n                onAdditionalDetails: this.onAdditionalDetails,\r\n                onError: this.onError,\r\n            };\r\n\r\n            const checkout = new AdyenCheckout(configuration);\r\n            if (this.paymentComponent) {\r\n                this.paymentComponent.unmount();\r\n            };\r\n            this.paymentComponent = checkout\r\n                .create('dropin')\r\n                .mount(this.paymentContainer.current);\r\n        };\r\n\r\n        const details = this.props.checkout.adyen.details;\r\n        if (\r\n            config &&\r\n            prevProps.checkout.adyen &&\r\n            details !== prevProps.checkout.adyen.details\r\n        ) {\r\n            this.paymentComponent.handleAction(details);\r\n        };\r\n    }\r\n\r\n    onSubmit(state, dropin) {\r\n        if (this.props.checkout.payload.reCaptchaSiteKey?.trim().length > 0) {\r\n            grecaptcha.ready(() => {\r\n                grecaptcha\r\n                    .execute(this.props.checkout.payload.reCaptchaSiteKey, {\r\n                        action: 'submit',\r\n                    })\r\n                    .then((token) =>  \r\n                        post(\"/api/adyen/recaptcha/validate\", {token})\r\n                    )\r\n                    .then((response) => response.json())\r\n                    .then((data) => {\r\n                        if (data.success == true) {\r\n                            if (state.isValid) {\r\n                                this.props.submit(state.data);\r\n                                this.paymentComponent = dropin;\r\n                            };\r\n                        };\r\n                    })\r\n                    .catch((ex) => this.onError(ex));\r\n            });\r\n        }\r\n        else if (state.isValid) {\r\n            this.props.submit(state.data);\r\n            this.paymentComponent = dropin;\r\n        }\r\n    }\r\n\r\n    onAdditionalDetails(state, dropin) {\r\n        this.props.onAdditionalDetails(state.data);\r\n        this.paymentComponent = dropin;\r\n    }\r\n\r\n    onError(error) {\r\n        // enable confirm button by reseting its state.\r\n        this.props.submitted();\r\n    }\r\n\r\n    render() {\r\n        return (\r\n            <div className=\"checkout-widget\">\r\n                <div ref={this.paymentContainer} className=\"payment\"></div>\r\n            </div>\r\n        );\r\n    }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n    const { checkout } = state;\r\n    return {\r\n        checkout,\r\n    }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n    return {\r\n        submit: (data) => dispatch(submit(data)),\r\n        setWidgetConfig: (data) => dispatch(setWidgetConfig(data)),\r\n        submitted: () => {\r\n            dispatch(adyenSubmitted());\r\n            dispatch(submitDone(null));\r\n        },\r\n        onAdditionalDetails: (data) => {\r\n            dispatch(additionalDetails(data));\r\n        },\r\n    }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AdyenDropinWidget);\r\n","import React, { PureComponent } from 'react'\r\nimport DynamicComponent from '../DynamicComponent'\r\nimport AdyenDropinWidget from '../../AdyenDropin/AdyenDropinWidget'\r\nconst scriptPattern = /<script\\b[^>]*>([\\s\\S]*?)<\\/script>/gi\r\nconst scriptFilePattern = /<script.*?src=[\"'](.*?)[\"']/gi\r\n\r\nclass PaymentWidget extends PureComponent {\r\n    render() {\r\n        // Adyen: start sample code\r\n        const { id, responseString } = this.props\r\n\r\n        if (id === 'AdyenDropin') {\r\n            return <AdyenDropinWidget responseString={responseString} />\r\n        }\r\n        // Adyen: end sample code\r\n\r\n        return this.renderWidget(responseString)\r\n    }\r\n\r\n    renderWidget(paymentSession) {\r\n        const WidgetCheckout = DynamicComponent({\r\n            loader: () => import('./CheckoutWidget'),\r\n        })\r\n        const args = {\r\n            paymentSession,\r\n            extractScripts: this.extractScripts,\r\n            executeScript: this.executeScript,\r\n            includeScript: this.includeScript,\r\n        }\r\n        return <WidgetCheckout {...args} />\r\n    }\r\n\r\n    extractScripts(domString) {\r\n        let matches,\r\n            html = domString\r\n        const scripts = [],\r\n            scriptFiles = []\r\n        while ((matches = scriptPattern.exec(domString)) !== null) {\r\n            html = html.replace(matches[0], '')\r\n            matches[1] && matches[1].trim() !== '' && scripts.push(matches[1])\r\n        }\r\n        while ((matches = scriptFilePattern.exec(domString)) !== null) {\r\n            matches[1] &&\r\n                matches[1].trim() !== '' &&\r\n                scriptFiles.push(matches[1])\r\n        }\r\n\r\n        return {\r\n            html,\r\n            scripts,\r\n            scriptFiles,\r\n        }\r\n    }\r\n\r\n    executeScript(domId, scriptContent) {\r\n        const script = document.createElement('script')\r\n        script.type = 'text/javascript'\r\n        try {\r\n            script.appendChild(document.createTextNode(scriptContent))\r\n        } catch (e) {\r\n            // to support IE\r\n            script.text = scriptContent\r\n        }\r\n        document.getElementById(domId).appendChild(script)\r\n    }\r\n\r\n    includeScript(domId, srciptUrl) {\r\n        const script = document.createElement('script')\r\n        script.type = 'text/javascript'\r\n        script.src = srciptUrl\r\n        document.getElementById(domId).appendChild(script)\r\n    }\r\n}\r\n\r\nexport default PaymentWidget\r\n","import { get, post } from \"./http\";\r\n\r\nexport const getSession = async () => {\r\n    const response = await get('/api/ingrid');\r\n    return response.json();\r\n}\r\n\r\nexport const updateSession = async () => {\r\n    const response = await post('/api/ingrid');\r\n    return response.status == 200 ? response.json() : undefined;\r\n}\r\n\r\nexport const replaceScriptNode = (node) => {\r\n    if (isScriptNode(node) && !isExternalScript(node)) {\r\n        node.parentNode.replaceChild(cloneScriptNode(node), node);\r\n    } else {\r\n        var i = 0,\r\n        children = node.childNodes;\r\n        while (i < children.length) {\r\n        replaceScriptNode(children[i++]);\r\n        }\r\n    }\r\n    return node;\r\n    }\r\n    \r\n    function isScriptNode(node) {\r\n    return node.tagName === \"SCRIPT\";\r\n    }\r\n    \r\n    function isExternalScript(node) {\r\n    return !!node.src && node.src !== \"\";\r\n    }\r\n    \r\n    function cloneScriptNode(node) {\r\n    var script = document.createElement(\"script\");\r\n    script.text = node.innerHTML;\r\n    for (var i = node.attributes.length - 1; i >= 0; i--) {\r\n        script.setAttribute(node.attributes[i].name, node.attributes[i].value);\r\n    }\r\n    return script;\r\n}","import React, { useRef, useEffect, useState, useCallback }from \"react\";\r\nimport { post} from '../Services/http';\r\nimport { load as loadCart } from \"../Actions/Cart.action\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport isEqual from 'fast-deep-equal';\r\nimport { replaceScriptNode, getSession, updateSession } from \"../Services/Ingrid.service\";\r\nimport { debounce } from 'lodash'\r\n\r\nconst IngridDeliveryCheckoutWidget = (props) => {\r\n  const { onError, updateDependencies, onCustomerDetailsChange } = props;\r\n\r\n  const uniqueContainerId = 'shipwallet-container';\r\n  const [ingridWidgetLoaded, setIngridWidgetLoaded] = useState(false);\r\n  const [htmlSnippet, setHtmlSnippet] = useState('');\r\n  const [previousUpdateDeps, setPreviousUpdateDeps] = useState(updateDependencies);\r\n  const wrapperRef = useRef(null);\r\n  var dispatch = useDispatch();\r\n\r\n  useEffect(() => {\r\n    initIngrid();\r\n  }, []);\r\n\r\n  const initIngrid = async () => {\r\n    try {\r\n      const session = await getSession();\r\n      if (session) {\r\n        setHtmlSnippet(session.htmlSnippet);\r\n      }\r\n    } catch (err) {\r\n      await handleApiError(err);\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    const anyDepsHasChanged = updateDependencies.some(\r\n      (current, idx) =>\r\n        !isEqual(\r\n          current,\r\n          previousUpdateDeps.length > idx ? previousUpdateDeps[idx] : undefined\r\n        )\r\n    );\r\n\r\n    if (\r\n      ingridWidgetLoaded &&\r\n      updateDependencies.length > 0 &&\r\n      anyDepsHasChanged\r\n    ) {\r\n      setPreviousUpdateDeps(updateDependencies);\r\n      updateIngridSession();\r\n    }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [updateDependencies]);\r\n\r\n  const onShippingMethodChanged = async (data) => {\r\n    try {\r\n      window._sw((api) => api.suspend());\r\n      await post('/api/ingrid/shippingoption', data)\r\n        .then((res) => console.log(res))\r\n        .then((result) => {\r\n          dispatch(loadCart())\r\n        })\r\n    } catch (err) {\r\n      await handleApiError(err);\r\n    } finally {\r\n      window._sw((api) => api.resume());\r\n    }\r\n  }\r\n\r\n  const updateIngridSession = useCallback(\r\n    debounce(async () => {\r\n      try {\r\n        window._sw((api) => api.suspend());\r\n        const ingridSession = await updateSession();\r\n        if (ingridSession?.htmlSnippet) {\r\n          setHtmlSnippet(ingridSession.htmlSnippet);\r\n        }\r\n      } catch (err) {\r\n        await handleApiError(err);\r\n      } finally {\r\n        window._sw((api) => api.resume());\r\n      }\r\n    }, 500),\r\n    []\r\n  );\r\n\r\n  const registerIngridEvents = () => {\r\n    window._sw(function (api) {\r\n      api.on('loaded', () => setIngridWidgetLoaded(true));\r\n      api.on(\"data_changed\", async (data, meta) => {\r\n        if (\r\n          meta.price_changed ||\r\n          meta.shipping_method_changed ||\r\n          meta.pickup_location_changed ||\r\n          meta.external_method_id_changed\r\n        ) {\r\n          await onShippingMethodChanged(data);\r\n          onError(\"\");\r\n        }\r\n      });\r\n      api.on(\"summary_changed\", async (data, meta) => {\r\n        if (meta.delivery_address_changed){\r\n          onDeliveryAddressChanged(data);\r\n        }\r\n      })\r\n    });\r\n  }\r\n\r\n  function onDeliveryAddressChanged(customerData) {\r\n    const deliveryAddress = customerData.delivery_address;\r\n    const street = [deliveryAddress.street, deliveryAddress.street_number].filter(s => s != null && s.trim()).join(\" \");\r\n    if (deliveryAddress){\r\n      const stateKey = \"customerDetails\";\r\n      onCustomerDetailsChange(stateKey, \"firstName\", deliveryAddress.first_name);\r\n      onCustomerDetailsChange(stateKey, \"lastName\", deliveryAddress.last_name);\r\n      onCustomerDetailsChange(stateKey, \"address\", street);\r\n      onCustomerDetailsChange(stateKey, \"zipCode\", deliveryAddress.postal_code);\r\n      onCustomerDetailsChange(stateKey, \"city\", deliveryAddress.city);\r\n      onCustomerDetailsChange(stateKey, \"phoneNumber\", deliveryAddress.phone_number);\r\n      onCustomerDetailsChange(stateKey, \"email\", deliveryAddress.email);\r\n    }\r\n  }\r\n\r\n  const handleApiError = useCallback(\r\n    async (err) => {\r\n      let errorMessage;\r\n      if (err.response) {\r\n        const data = await err.response.json();\r\n        if (data.error){\r\n          errorMessage = data.error;\r\n        } else if (data.message) {\r\n          errorMessage = data.message;\r\n        } else {\r\n          errorMessage = \"Error in ingrid delivery checkout\"\r\n        }\r\n      } else {\r\n        errorMessage = err;\r\n      }\r\n      if (typeof onError === 'function') {\r\n        onError(errorMessage);\r\n      } else {\r\n        console.log(errorMessage);\r\n      }\r\n    },\r\n    [onError]\r\n  );\r\n\r\n  useEffect(() => {\r\n    if (wrapperRef?.current && !!htmlSnippet && !ingridWidgetLoaded) {\r\n      replaceScriptNode(\r\n        wrapperRef.current.querySelector(`#${uniqueContainerId}`)\r\n      );\r\n      registerIngridEvents();\r\n    }\r\n  }, [htmlSnippet]);\r\n\r\n  return (\r\n    <div\r\n      dangerouslySetInnerHTML={{ __html: htmlSnippet }}\r\n      ref={wrapperRef}\r\n    ></div>\r\n  )\r\n};\r\n\r\nexport default IngridDeliveryCheckoutWidget;","import React, { Component, Fragment } from 'react'\r\nimport { connect } from 'react-redux'\r\n\r\nimport Cart from '../Components/Cart'\r\nimport CheckoutPrivateCustomerInfo from '../Components/Checkout.PrivateCustomerInfo'\r\nimport CheckoutBusinessCustomerInfo from '../Components/Checkout.BusinessCustomerInfo'\r\nimport CheckoutDeliveryMethods from '../Components/Checkout.DeliveryMethods'\r\nimport CheckoutPaymentMethods from '../Components/Checkout.PaymentMethods'\r\nimport CheckoutOrderInfo from '../Components/Checkout.OrderInfo'\r\nimport PaymentWidget from '../Components/Payments/PaymentWidget'\r\nimport IngridDeliveryCheckoutWidget from '../Components/IngridDeliveryCheckoutWidget'\r\nimport CountryPicker from '../Components/CountryPicker'\r\n\r\nimport constants from '../constants'\r\n\r\nimport {\r\n    acceptTermsOfCondition,\r\n    setBusinessCustomer,\r\n    setCampaignCode,\r\n    setCountry,\r\n    setDelivery,\r\n    setPayment,\r\n    setOrderNote,\r\n    submit,\r\n    verify,\r\n    setCustomerDetails,\r\n    setAlternativeAddress,\r\n    setSignUp,\r\n    toggleTemporaryDeliveryAddress,\r\n    setSelectedCompanyAddress,\r\n    submitError,\r\n    reloadPayment,\r\n    submitCampaignCode,\r\n    submitRequest,\r\n    submitDone,\r\n    subscribeToNewsLetter,\r\n    setGiftWrappingInfo,\r\n} from '../Actions/Checkout.action'\r\nimport * as cartActions from '../Actions/Cart.action'\r\n\r\nimport { translate } from '../Services/translation'\r\nimport { string, object, boolean, mixed } from 'yup'\r\n\r\nconst privateCustomerAdditionalDetailsSchema = object().shape({\r\n    acceptTermsOfCondition: boolean()\r\n        .required(translate(`validation.checkrequired`))\r\n        .oneOf([true], translate(`validation.checkrequired`)),\r\n    selectedDeliveryMethod: string().required(translate(`validation.required`)),\r\n})\r\n\r\nconst privateCustomerAddressSchema = object().shape({\r\n    email: string()\r\n        .required(translate(`validation.required`))\r\n        .email(translate(`validation.email`)),\r\n    phoneNumber: string().required(translate(`validation.required`)),\r\n    country: mixed()\r\n        .required(translate(`validation.required`))\r\n        .notOneOf([''], translate('validation.required')),\r\n    city: string().required(translate(`validation.required`)),\r\n    zipCode: string().required(translate(`validation.required`)),\r\n    address: string().required(translate(`validation.required`)),\r\n    lastName: string().required(translate(`validation.required`)),\r\n    firstName: string().required(translate(`validation.required`)),\r\n})\r\n\r\nconst privateCustomerAlternativeAddressSchema = object().shape({\r\n    phoneNumber: string().required(translate(`validation.required`)),\r\n    country: mixed()\r\n        .required(translate(`validation.required`))\r\n        .notOneOf([''], translate('validation.required')),\r\n    city: string().required(translate(`validation.required`)),\r\n    zipCode: string().required(translate(`validation.required`)),\r\n    address: string().required(translate(`validation.required`)),\r\n    lastName: string().required(translate(`validation.required`)),\r\n    firstName: string().required(translate(`validation.required`)),\r\n})\r\n\r\nconst businessCustomerDetailsSchema = object().shape({\r\n    acceptTermsOfCondition: boolean()\r\n        .required(translate(`validation.checkrequired`))\r\n        .oneOf([true], translate(`validation.checkrequired`)),\r\n    selectedDeliveryMethod: string().required(translate(`validation.required`)),\r\n    email: string()\r\n        .required(translate(`validation.required`))\r\n        .email(translate(`validation.email`)),\r\n    phoneNumber: string().required(translate(`validation.required`)),\r\n    lastName: string().required(translate(`validation.required`)),\r\n    firstName: string().required(translate(`validation.required`)),\r\n    selectedCompanyAddressId: string().required(\r\n        translate(`validation.required`)\r\n    ),\r\n})\r\n\r\nclass CheckoutContainer extends Component {\r\n    constructor(props) {\r\n        super(props)\r\n        this.state = {\r\n            showVoucherField: false,\r\n            ingridError: '',\r\n        }\r\n    }\r\n\r\n    componentDidMount() {\r\n        if (!this.props || !this.props.checkout) {\r\n            return\r\n        }\r\n        // set selected value for payment method on load.\r\n        const { selectedPaymentMethod } = this.props.checkout.payload\r\n        selectedPaymentMethod && this.props.setPayment(selectedPaymentMethod)\r\n\r\n        // fill default select value to the state\r\n        const { customerDetails, alternativeAddress } =\r\n            this.props.checkout.payload\r\n\r\n        if (!customerDetails || !customerDetails.country) {\r\n            this.props.onCustomerDetailsChange(\r\n                'customerDetails',\r\n                'country',\r\n                window.__litium.currentCountryAlpha2\r\n            )\r\n        }\r\n\r\n        if (!alternativeAddress || !alternativeAddress.country) {\r\n            this.props.onCustomerDetailsChange(\r\n                'alternativeAddress',\r\n                'country',\r\n                window.__litium.currentCountryAlpha2\r\n            )\r\n        }\r\n    }\r\n\r\n    placeOrder() {\r\n        const { payload } = this.props.checkout\r\n        const {\r\n            isBusinessCustomer,\r\n            selectedCompanyAddressId,\r\n            acceptTermsOfCondition,\r\n            selectedPaymentMethod,\r\n            selectedDeliveryMethod,\r\n        } = payload\r\n        const notCustomerDetailFields = [\r\n            'selectedCompanyAddressId',\r\n            'selectedPaymentMethod',\r\n            'selectedDeliveryMethod',\r\n            'acceptTermsOfCondition',\r\n        ]\r\n        const onError = (error, addressPath = 'customerDetails') => {\r\n            error.path =\r\n                notCustomerDetailFields.indexOf(error.path) >= 0\r\n                    ? error.path\r\n                    : `${addressPath}-${error.path}`\r\n            this.props.submitError(error)\r\n        }\r\n        this.props.submitRequest()\r\n        if (isBusinessCustomer) {\r\n            businessCustomerDetailsSchema\r\n                .validate({\r\n                    ...payload.customerDetails,\r\n                    selectedCompanyAddressId,\r\n                    selectedPaymentMethod,\r\n                    selectedDeliveryMethod,\r\n                    acceptTermsOfCondition,\r\n                })\r\n                .then(() => {\r\n                    this.props.submit()\r\n                })\r\n                .catch(onError)\r\n        } else {\r\n            const checkAltAddress =\r\n                payload.alternativeAddress.showAlternativeAddress &&\r\n                (payload.alternativeAddress.firstName ||\r\n                    payload.alternativeAddress.lastName ||\r\n                    payload.alternativeAddress.address ||\r\n                    payload.alternativeAddress.zipCode ||\r\n                    payload.alternativeAddress.city ||\r\n                    payload.alternativeAddress.phoneNumber)\r\n\r\n            privateCustomerAddressSchema\r\n                .validate({\r\n                    ...payload.customerDetails,\r\n                })\r\n                .then(() => {\r\n                    payload.showAlternativeAddress =\r\n                        payload.alternativeAddress.showAlternativeAddress\r\n                    if (checkAltAddress) {\r\n                        privateCustomerAlternativeAddressSchema\r\n                            .validate({\r\n                                ...payload.alternativeAddress,\r\n                            })\r\n                            .then(() => {\r\n                                privateCustomerAdditionalDetailsSchema\r\n                                    .validate({\r\n                                        selectedPaymentMethod,\r\n                                        selectedDeliveryMethod,\r\n                                        acceptTermsOfCondition,\r\n                                    })\r\n                                    .then(() => {\r\n                                        this.props.submit()\r\n                                    })\r\n                                    .catch(onError)\r\n                            })\r\n                            .catch((error) => {\r\n                                onError(error, 'alternativeAddress')\r\n                            })\r\n                    } else {\r\n                        privateCustomerAdditionalDetailsSchema\r\n                            .validate({\r\n                                selectedPaymentMethod,\r\n                                selectedDeliveryMethod,\r\n                                acceptTermsOfCondition,\r\n                            })\r\n                            .then(() => {\r\n                                this.props.submit()\r\n                            })\r\n                            .catch(onError)\r\n                    }\r\n                })\r\n                .catch(onError)\r\n        }\r\n    }\r\n\r\n    render() {\r\n        const { cart } = this.props\r\n        if (!cart || !cart.orderRows || cart.orderRows.length < 1) {\r\n            return (\r\n                <div className=\"small-12\">\r\n                    <h3>{translate(`checkout.cart.empty`)}</h3>\r\n                </div>\r\n            )\r\n        }\r\n\r\n        const { checkout } = this.props\r\n        const { payload, errors = {} } = checkout\r\n        const {\r\n            authenticated,\r\n            checkoutMode,\r\n            isBusinessCustomer,\r\n            isNewsLetterSubscriber,\r\n            paymentMethods,\r\n            paymentWidget,\r\n            subscribeToNewsLetter,\r\n            ingridDeliveryCheckoutId,\r\n            selectedDeliveryMethod,\r\n        } = payload\r\n\r\n        const ingridIsSelectedDeliveryMethod =\r\n            selectedDeliveryMethod == ingridDeliveryCheckoutId\r\n\r\n        return (\r\n            <Fragment>\r\n                <div className=\"checkout__left-sections-container\">\r\n                    {(!paymentWidget || paymentWidget.isChangeable) &&\r\n                        this.renderCartSection()}\r\n                    {this.renderCampaignCodeSection()}\r\n                    {!ingridIsSelectedDeliveryMethod &&\r\n                        (!paymentWidget ||\r\n                            paymentWidget.displayCustomerDetails) &&\r\n                        this.renderCustomerDetailsSection()}\r\n                    {!ingridIsSelectedDeliveryMethod &&\r\n                        (!paymentWidget ||\r\n                            paymentWidget.displayDeliveryMethods) &&\r\n                        this.renderDeliveryMethodsSection()}\r\n                    {ingridIsSelectedDeliveryMethod &&\r\n                        this.renderIngridDeliveryCheckout()}\r\n                    {paymentMethods &&\r\n                        paymentMethods.length > 1 &&\r\n                        (!paymentWidget || paymentWidget.isChangeable) &&\r\n                        this.renderPaymentMethodsSection()}\r\n\r\n                    <div className=\"checkout__section hide-for-large\">\r\n                        <CheckoutOrderInfo cart={cart} />\r\n                    </div>\r\n                    <hr className=\"hide-for-large\" />\r\n\r\n                    <Fragment>\r\n                        <div className=\"checkout__section\">\r\n                            <input\r\n                                className=\"checkout__checkbox-input\"\r\n                                type=\"checkbox\"\r\n                                id=\"acceptTermsOfCondition\"\r\n                                checked={payload.acceptTermsOfCondition}\r\n                                onChange={(event) =>\r\n                                    this.props.acceptTermsOfCondition(\r\n                                        event.target.checked\r\n                                    )\r\n                                }\r\n                            />\r\n                            <label\r\n                                className=\"checkout__checkbox-label\"\r\n                                htmlFor=\"acceptTermsOfCondition\"\r\n                            >\r\n                                {translate(\r\n                                    'checkout.terms.acceptTermsOfCondition'\r\n                                )}{' '}\r\n                                <a\r\n                                    className=\"checkout__link\"\r\n                                    href={payload.termsUrl}\r\n                                    target=\"_blank\"\r\n                                >\r\n                                    {translate('checkout.terms.link')}\r\n                                </a>\r\n                            </label>\r\n                            {errors[\r\n                                'acceptTermsOfCondition-acceptTermsOfCondition'\r\n                            ] && (\r\n                                <span\r\n                                    className=\"form__validator--error\"\r\n                                    data-error-for=\"acceptTermsOfCondition\"\r\n                                >\r\n                                    {\r\n                                        errors[\r\n                                            'acceptTermsOfCondition-acceptTermsOfCondition'\r\n                                        ][0]\r\n                                    }\r\n                                </span>\r\n                            )}\r\n                        </div>\r\n                        {!isNewsLetterSubscriber && (\r\n                            <>\r\n                                <div className=\"checkout__section\">\r\n                                    <input\r\n                                        className=\"checkout__checkbox-input\"\r\n                                        type=\"checkbox\"\r\n                                        id=\"subscribeToNewsLetter\"\r\n                                        checked={subscribeToNewsLetter}\r\n                                        onChange={(event) =>\r\n                                            this.props.subscribeToNewsLetter(\r\n                                                event.target.checked\r\n                                            )\r\n                                        }\r\n                                    />\r\n                                    <label\r\n                                        className=\"checkout__checkbox-label\"\r\n                                        htmlFor=\"subscribeToNewsLetter\"\r\n                                    >\r\n                                        {translate(\r\n                                            'checkout.subscribetonewsletter'\r\n                                        )}\r\n                                    </label>\r\n                                </div>\r\n                                <hr className=\"\" />\r\n                            </>\r\n                        )}\r\n                        <PaymentWidget\r\n                            {...paymentWidget}\r\n                            verify={this.props.verify}\r\n                        />\r\n                        {!paymentWidget && (\r\n                            <div className=\"checkout__section\">\r\n                                {!authenticated &&\r\n                                (isBusinessCustomer ||\r\n                                    checkoutMode ===\r\n                                        constants.checkoutMode\r\n                                            .companyCustomers) ? (\r\n                                    <button\r\n                                        className=\"checkout__submit-button\"\r\n                                        onClick={() =>\r\n                                            (location.href = payload.loginUrl)\r\n                                        }\r\n                                    >\r\n                                        {translate(\r\n                                            'checkout.login.to.placeorder'\r\n                                        )}\r\n                                    </button>\r\n                                ) : (\r\n                                    <button\r\n                                        type=\"submit\"\r\n                                        className=\"checkout__submit-button\"\r\n                                        disabled={checkout.isSubmitting}\r\n                                        onClick={() => {\r\n                                            if (\r\n                                                payload.reCaptchaSiteKey.trim().length >\r\n                                                0\r\n                                            ) {\r\n                                                grecaptcha.ready(() => {\r\n                                                    grecaptcha\r\n                                                        .execute(\r\n                                                            payload.reCaptchaSiteKey,\r\n                                                            { action: 'submit' }\r\n                                                        )\r\n                                                        .then((token) => {\r\n                                                            this.placeOrder()\r\n                                                        })\r\n                                                })\r\n                                            }\r\n                                            else {\r\n                                                this.placeOrder()\r\n                                            }\r\n                                        }}\r\n                                    >\r\n                                        {translate('checkout.placeorder')}\r\n                                    </button>\r\n                                )}\r\n                            </div>\r\n                        )}\r\n                        {payload.reCaptchaSiteKey && (\r\n                            <div className=\"checkout__recaptcha-label\">\r\n                                <p>\r\n                                    Google{' '}\r\n                                    <a href=\"https://policies.google.com/privacy\">\r\n                                        Privacy Policy\r\n                                    </a>{' '}\r\n                                    and{' '}\r\n                                    <a href=\"https://policies.google.com/terms\">\r\n                                        Terms of Service\r\n                                    </a>{' '}\r\n                                    apply.\r\n                                </p>\r\n                            </div>\r\n                        )}\r\n                    </Fragment>\r\n                    <div className=\"checkout__section\">\r\n                        {errors && errors['general'] && (\r\n                            <p className=\"checkout__validator--error\">\r\n                                {errors['general'][0]}\r\n                            </p>\r\n                        )}\r\n                    </div>\r\n                </div>\r\n                <div className=\"checkout__right-sections-container\">\r\n                    <div className=\"checkout__section\">\r\n                        <CheckoutOrderInfo cart={cart} />\r\n                    </div>\r\n                </div>\r\n            </Fragment>\r\n        )\r\n    }\r\n\r\n    componentDidUpdate(prevProps) {\r\n        if (\r\n            this.props.checkout.result &&\r\n            this.props.checkout.result.redirectUrl\r\n        ) {\r\n            window.location = this.props.checkout.result.redirectUrl\r\n            return\r\n        }\r\n\r\n        const { checkout } = this.props\r\n        if (!checkout.isSubmitting || !checkout.errors) {\r\n            return\r\n        }\r\n\r\n        const errorKeys = Object.keys(checkout.errors)\r\n        if (!errorKeys || errorKeys.length < 1) {\r\n            return\r\n        }\r\n\r\n        const errorNode = document.querySelector(\r\n            `[data-error-for=\"${errorKeys[0]}\"]`\r\n        )\r\n        if (!errorNode) {\r\n            return\r\n        }\r\n\r\n        const inputNode = errorNode.parentElement.querySelector('input')\r\n        if (inputNode) {\r\n            setTimeout(() => inputNode.focus(), 1000)\r\n            inputNode.scrollIntoView({ behavior: 'smooth', block: 'center' })\r\n        } else {\r\n            errorNode.scrollIntoView({ behavior: 'smooth', block: 'center' })\r\n        }\r\n    }\r\n\r\n    renderCartSection() {\r\n        const { checkout } = this.props,\r\n            { errors = {} } = checkout\r\n\r\n        return (\r\n            <Fragment>\r\n                <div className=\"checkout__section\">\r\n                    <h3>{translate('checkout.cart.title')}</h3>\r\n                </div>\r\n                <div className=\"checkout__section\">\r\n                    {errors && errors['cart'] && (\r\n                        <p className=\"checkout__validator--error\">\r\n                            {errors['cart'][0]}\r\n                        </p>\r\n                    )}\r\n                </div>\r\n                <Cart\r\n                    {...{\r\n                        ...this.props.cart,\r\n                        updateOrderRowQuantity:\r\n                            this.props.updateOrderRowQuantity,\r\n                        removeOrderRow: this.props.removeOrderRow,\r\n                        giftWrapping: checkout.payload.giftWrapping,\r\n                        addToCart: this.props.addToCart,\r\n                        setGiftWrappingInfo: this.props.setGiftWrappingInfo,\r\n                        hasGiftWrappingRow: checkout.payload.hasGiftWrappingRow,\r\n                    }}\r\n                />\r\n            </Fragment>\r\n        )\r\n    }\r\n\r\n    toggleVoucherCodeField() {\r\n        this.setState((previousState) => ({\r\n            ...previousState,\r\n            showVoucherField: !previousState.showVoucherField,\r\n        }))\r\n    }\r\n\r\n    renderCampaignCodeSection() {\r\n        const { checkout } = this.props,\r\n            { errors = {} } = checkout\r\n        return (\r\n            <Fragment>\r\n                <div className=\"checkout__section\">\r\n                    <div className=\"checkout-campaign-code__text\">\r\n                        <a onClick={() => this.toggleVoucherCodeField()}>\r\n                            {translate('checkout.campaigncode.text')}\r\n                        </a>\r\n                    </div>\r\n                    {this.state.showVoucherField && (\r\n                        <div className=\"small-6 medium-8 checkout-campaign-code\">\r\n                            <div className=\"small-12 medium-4\">\r\n                                <input\r\n                                    className=\"form__input\"\r\n                                    id=\"campaign-code\"\r\n                                    placeholder={translate(\r\n                                        'checkout.campaigncode'\r\n                                    )}\r\n                                    onChange={(event) =>\r\n                                        this.props.setCampaignCode(\r\n                                            event.target.value\r\n                                        )\r\n                                    }\r\n                                />\r\n                                {errors && errors['campaignCode'] && (\r\n                                    <span\r\n                                        className=\"form__validator--error\"\r\n                                        data-error-for=\"campaign-code\"\r\n                                    >\r\n                                        {errors['campaignCode'][0]}\r\n                                    </span>\r\n                                )}\r\n                            </div>\r\n                            <button\r\n                                className=\"checkout-campaign-code__button\"\r\n                                onClick={() => this.props.submitCampaignCode()}\r\n                            >\r\n                                {translate('checkout.usecampaigncode')}\r\n                            </button>\r\n                        </div>\r\n                    )}\r\n                    <hr />\r\n                </div>\r\n            </Fragment>\r\n        )\r\n    }\r\n\r\n    renderCustomerDetailsSection() {\r\n        const {\r\n                checkout,\r\n                onCustomerDetailsChange,\r\n                onSignUpChange,\r\n                setSelectedCompanyAddress,\r\n                cart,\r\n            } = this.props,\r\n            { payload, errors = {} } = checkout,\r\n            {\r\n                companyName,\r\n                authenticated,\r\n                customerDetails,\r\n                companyAddresses,\r\n                selectedCompanyAddressId,\r\n                alternativeAddress,\r\n                giftWrapping,\r\n                isBusinessCustomer,\r\n                signUp,\r\n                checkoutMode,\r\n            } = payload\r\n\r\n        const isGiftWrappingEnabled =\r\n            (giftWrapping &&\r\n                cart.orderRows.find(\r\n                    (row) => row.articleNumber === giftWrapping.id\r\n                )) != null\r\n                ? true\r\n                : false\r\n\r\n        const privateCustomerInfoComponent = (\r\n            <CheckoutPrivateCustomerInfo\r\n                {...{\r\n                    customerDetails,\r\n                    authenticated,\r\n                    onChange: onCustomerDetailsChange,\r\n                    signUp,\r\n                    onSignUpChange,\r\n                    alternativeAddress,\r\n                    isGiftWrappingEnabled,\r\n                    giftWrapping,\r\n                    errors,\r\n                }}\r\n            />\r\n        )\r\n        const businessCustomerInfoComponent = (\r\n            <CheckoutBusinessCustomerInfo\r\n                {...{\r\n                    customerDetails,\r\n                    companyAddresses,\r\n                    companyName,\r\n                    authenticated,\r\n                    selectedCompanyAddressId,\r\n                    onChange: onCustomerDetailsChange,\r\n                    setSelectedCompanyAddress,\r\n                    errors,\r\n                }}\r\n            />\r\n        )\r\n        if (!authenticated) {\r\n            return (\r\n                <Fragment>\r\n                    <div className=\"checkout__section\">\r\n                        <h3>{translate('checkout.customerinfo.title')}</h3>\r\n                        <div className=\"small-12 medium-6 checkout-customer__login-info\">\r\n                            <label>\r\n                                {translate(\r\n                                    'checkout.customerinfo.existingcustomer'\r\n                                )}\r\n                            </label>\r\n                            <a\r\n                                href={payload.loginUrl}\r\n                                className=\"checkout__link\"\r\n                            >\r\n                                {translate(\r\n                                    'checkout.customerinfo.clicktologin'\r\n                                )}\r\n                            </a>\r\n                            {!isBusinessCustomer &&\r\n                                checkoutMode ===\r\n                                    constants.checkoutMode.both && (\r\n                                    <a\r\n                                        onClick={() =>\r\n                                            this.props.setBusinessCustomer(true)\r\n                                        }\r\n                                        className=\"checkout__link\"\r\n                                    >\r\n                                        {translate(\r\n                                            'checkout.customerinfo.businesscustomer'\r\n                                        )}\r\n                                    </a>\r\n                                )}\r\n                            {isBusinessCustomer &&\r\n                                checkoutMode ===\r\n                                    constants.checkoutMode.both && (\r\n                                    <a\r\n                                        onClick={() =>\r\n                                            this.props.setBusinessCustomer(\r\n                                                false\r\n                                            )\r\n                                        }\r\n                                        className=\"checkout__link\"\r\n                                    >\r\n                                        {translate(\r\n                                            'checkout.customerinfo.privatecustomer'\r\n                                        )}\r\n                                    </a>\r\n                                )}\r\n                        </div>\r\n                    </div>\r\n                    {!isBusinessCustomer &&\r\n                        checkoutMode !==\r\n                            constants.checkoutMode.companyCustomers &&\r\n                        privateCustomerInfoComponent}\r\n                    {(isBusinessCustomer ||\r\n                        checkoutMode ===\r\n                            constants.checkoutMode.companyCustomers) &&\r\n                        businessCustomerInfoComponent}\r\n                    <hr />\r\n                </Fragment>\r\n            )\r\n        }\r\n        if (isBusinessCustomer) {\r\n            return (\r\n                <Fragment>\r\n                    <div className=\"checkout__section\">\r\n                        <h3>{translate('checkout.customerinfo.title')}</h3>\r\n                    </div>\r\n                    {authenticated && businessCustomerInfoComponent}\r\n                    <hr />\r\n                </Fragment>\r\n            )\r\n        }\r\n\r\n        return (\r\n            <Fragment>\r\n                <div className=\"checkout__section\">\r\n                    <h3>{translate('checkout.customerinfo.title')}</h3>\r\n                </div>\r\n                {privateCustomerInfoComponent}\r\n                <hr />\r\n            </Fragment>\r\n        )\r\n    }\r\n\r\n    renderIngridDeliveryCheckout() {\r\n        const { cart, onCustomerDetailsChange, checkout } = this.props,\r\n            { payload } = checkout,\r\n            { customerDetails } = payload\r\n\r\n        return (\r\n            <>\r\n                <div className=\"checkout__country-picker small-12 medium-6\">\r\n                    <CountryPicker\r\n                        customerDetails={customerDetails}\r\n                        labelName=\"checkout.customerinfo.country\"\r\n                    />\r\n                </div>\r\n                <div className=\"checkout__section ingrid-delivery-checkout\">\r\n                    {this.state.ingridError && (\r\n                        <div className=\"ingrid__error\">\r\n                            <span>{this.state.ingridError}</span>\r\n                        </div>\r\n                    )}\r\n                    <div>\r\n                        <IngridDeliveryCheckoutWidget\r\n                            updateDependencies={[cart.orderRows]}\r\n                            onCustomerDetailsChange={onCustomerDetailsChange}\r\n                            onError={(err) => this.setIngridError(err)}\r\n                        />\r\n                    </div>\r\n                </div>\r\n            </>\r\n        )\r\n    }\r\n\r\n    setIngridError(err) {\r\n        this.setState((previousState) => ({\r\n            ...previousState,\r\n            ingridError: err,\r\n        }))\r\n    }\r\n\r\n    renderDeliveryMethodsSection() {\r\n        const { checkout } = this.props,\r\n            { payload, errors = {} } = checkout,\r\n            { deliveryMethods } = payload\r\n\r\n        return (\r\n            <Fragment>\r\n                <div className=\"checkout__section\">\r\n                    <h3>{translate('checkout.delivery.title')}</h3>\r\n                </div>\r\n                <CheckoutDeliveryMethods\r\n                    deliveryMethods={deliveryMethods}\r\n                    selectedId={payload.selectedDeliveryMethod}\r\n                    onChange={this.props.setDelivery}\r\n                />\r\n                {errors['selectedDeliveryMethod'] && (\r\n                    <span className=\"form__validator--error\">\r\n                        {errors['selectedDeliveryMethod'][0]}\r\n                    </span>\r\n                )}\r\n            </Fragment>\r\n        )\r\n    }\r\n\r\n    renderPaymentMethodsSection() {\r\n        const { checkout } = this.props,\r\n            { payload, errors = {} } = checkout,\r\n            { paymentMethods } = payload\r\n        return (\r\n            <Fragment>\r\n                <div className=\"checkout__section\">\r\n                    <h3>{translate('checkout.payment.title')}</h3>\r\n                </div>\r\n                <CheckoutPaymentMethods\r\n                    paymentMethods={paymentMethods}\r\n                    selectedId={payload.selectedPaymentMethod}\r\n                    onChange={this.props.setPayment}\r\n                    errors={errors}\r\n                    onCampaignCodeChange={this.props.setCampaignCode}\r\n                    onSubmitCampaignCode={this.props.submitCampaignCode}\r\n                />\r\n                {errors['selectedPaymentMethod'] && (\r\n                    <span className=\"form__validator--error\">\r\n                        {errors['selectedPaymentMethod'][0]}\r\n                    </span>\r\n                )}\r\n            </Fragment>\r\n        )\r\n    }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n    const { cart, checkout } = state\r\n    return {\r\n        cart,\r\n        checkout,\r\n    }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n    return {\r\n        submit: () => dispatch(submit()),\r\n        setBusinessCustomer: (value) => dispatch(setBusinessCustomer(value)),\r\n        setCampaignCode: (code) => dispatch(setCampaignCode(code)),\r\n        setCountry: (systemId) => dispatch(setCountry(systemId)),\r\n        setDelivery: (systemId) => dispatch(setDelivery(systemId)),\r\n        setPayment: (systemId) => dispatch(setPayment(systemId)),\r\n        setOrderNote: (note) => dispatch(setOrderNote(note)),\r\n        setGiftWrapping: (giftWrapping) =>\r\n            dispatch(setGiftWrapping(giftWrapping)),\r\n        setAlternativeAddress: (name, value) =>\r\n            dispatch(setAlternativeAddress(name, value)),\r\n        acceptTermsOfCondition: (accept) =>\r\n            dispatch(acceptTermsOfCondition(accept)),\r\n        subscribeToNewsLetter: (subscribe) =>\r\n            dispatch(subscribeToNewsLetter(subscribe)),\r\n        setGiftWrappingInfo: (additionalInfo, artNo, callback) =>\r\n            dispatch(setGiftWrappingInfo(additionalInfo, artNo, callback)),\r\n        verify: (url, orderId, payload) =>\r\n            dispatch(verify(url, orderId, payload)),\r\n        onSignUpChange: (signUp) => dispatch(setSignUp(signUp)),\r\n        toggleTemporaryDeliveryAddress: (useTemporaryDeliveryAddress) =>\r\n            dispatch(\r\n                toggleTemporaryDeliveryAddress(useTemporaryDeliveryAddress)\r\n            ),\r\n        submitCampaignCode: () => dispatch(submitCampaignCode()),\r\n        submitRequest: () => dispatch(submitRequest()),\r\n        submitError: (error) => {\r\n            dispatch(submitError(error))\r\n            dispatch(submitDone(null))\r\n        },\r\n        setSelectedCompanyAddress: (companyAddressId, country) => {\r\n            dispatch(setSelectedCompanyAddress(companyAddressId))\r\n            dispatch(setCountry(country))\r\n        },\r\n        onCustomerDetailsChange: (stateKey, propName, value) => {\r\n            switch (stateKey) {\r\n                case 'customerDetails':\r\n                    dispatch(setCustomerDetails(propName, value))\r\n                    break\r\n                case 'alternativeAddress':\r\n                    dispatch(setAlternativeAddress(propName, value))\r\n                    break\r\n            }\r\n        },\r\n        addToCart: (params) =>\r\n            dispatch(cartActions.add(params)).then(() =>\r\n                dispatch(reloadPayment())\r\n            ),\r\n        updateOrderRowQuantity: (rowId, quantity) =>\r\n            dispatch(cartActions.update(rowId, quantity)).then(() =>\r\n                dispatch(reloadPayment())\r\n            ),\r\n        removeOrderRow: (rowId) =>\r\n            dispatch(cartActions.update(rowId, 0)).then(() =>\r\n                dispatch(reloadPayment())\r\n            ),\r\n    }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CheckoutContainer)\r\n"],"sourceRoot":""}