{"version":3,"sources":["quick-add-cta.js"],"names":["Soho","plugins","delegate","document","e","preventDefault","form","target","button","querySelector","span","$count","labelDefault","dataset","label","labelAdded","labelError","disabled","handleError","classList","add","innerHTML","setTimeout","remove","$","ajax","url","getAttribute","type","data","URLSearchParams","FormData","toString","success","result","payload","count","window","dataLayer","push","event","ecommerce","currencyCode","trackingCurrency","products","item","error"],"mappings":"AAAAA,KAAKC,QAAQC,SAASC,SAAU,SAAU,qBAAqB,SAASC,GACpEA,EAAEC,iBAEF,IAAIC,EAAOF,EAAEG,OACTC,EAASF,EAAKG,cAAc,yBAC5BC,EAAOF,EAAOC,cAAc,QAC5BE,EAASR,SAASM,cAAc,0CAChCG,EAAeJ,EAAOK,QAAQC,OAAS,gBACvCC,EAAaP,EAAOK,QAAQE,YAAc,kBAC1CC,EAAaR,EAAOK,QAAQG,YAAc,gBAE9C,IAAIR,EAAOS,SAAX,CAIAT,EAAOS,UAAW,EAElB,IAAIC,EAAc,WACdV,EAAOS,UAAW,EAClBT,EAAOW,UAAUC,IAAI,gDACrBV,EAAKW,UAAYL,EAEjBM,YAAW,WACPd,EAAOW,UAAUI,OAAO,gDACxBb,EAAKW,UAAYT,CACrB,GAAG,IACP,EAEAY,EAAEC,KAAK,CACHC,IAAKpB,EAAKqB,aAAa,UACvBC,KAAMtB,EAAKqB,aAAa,UACxBE,KAAM,IAAIC,gBAAgB,IAAIC,SAASzB,IAAO0B,WAC9CC,QAAS,SAASJ,GACVA,EAAKK,QACDvB,IACAA,EAAOU,UAAYQ,EAAKM,QAAQC,OAGpC5B,EAAOW,UAAUC,IAAI,gDACrBV,EAAKW,UAAYN,EAEjBO,YAAW,WACPd,EAAOS,UAAW,EAClBT,EAAOW,UAAUI,OAAO,gDACxBb,EAAKW,UAAYT,CACrB,GAAG,KAECyB,OAAOC,WACPD,OAAOC,UAAUC,KAAK,CAClBC,MAAS,YACTC,UAAa,CACTC,aAAgBb,EAAKM,QAAQQ,iBAC7BvB,IAAO,CACHwB,SAAY,CAACf,EAAKM,QAAQU,WAM1C3B,GAER,EACA4B,MAAO5B,GAjDX,CAmDJ","file":"../../javascript/quick-add-cta.js","sourcesContent":["Soho.plugins.delegate(document, 'submit', '.js-quick-add-cta', function(e) {\n    e.preventDefault();\n\n    var form = e.target;\n    var button = form.querySelector('button[type=\"submit\"]');\n    var span = button.querySelector('span');\n    var $count = document.querySelector('.js-basket-count .header-action__count');\n    var labelDefault = button.dataset.label || 'Add to basket';\n    var labelAdded = button.dataset.labelAdded || 'Added to basket';\n    var labelError = button.dataset.labelError || 'Failed to add';\n\n    if (button.disabled) {\n        return;\n    }\n\n    button.disabled = true;\n\n    var handleError = function() {\n        button.disabled = false;\n        button.classList.add('product-add-to-basket-form__quick-add--error');\n        span.innerHTML = labelError;\n\n        setTimeout(function() {\n            button.classList.remove('product-add-to-basket-form__quick-add--error');\n            span.innerHTML = labelDefault;\n        }, 3000);\n    };\n\n    $.ajax({\n        url: form.getAttribute('action'),\n        type: form.getAttribute('method'),\n        data: new URLSearchParams(new FormData(form)).toString(),\n        success: function(data) {\n            if (data.result) {\n                if ($count) {\n                    $count.innerHTML = data.payload.count;\n                }\n\n                button.classList.add('product-add-to-basket-form__quick-add--added');\n                span.innerHTML = labelAdded;\n\n                setTimeout(function() {\n                    button.disabled = false;\n                    button.classList.remove('product-add-to-basket-form__quick-add--added');\n                    span.innerHTML = labelDefault;\n                }, 3000);\n\n                if (window.dataLayer) {\n                    window.dataLayer.push({\n                        'event': 'addToCart',\n                        'ecommerce': {\n                            'currencyCode': data.payload.trackingCurrency,\n                            'add': {\n                                'products': [data.payload.item]\n                            }\n                        }\n                    });\n                }\n            } else {\n                handleError();\n            }\n        },\n        error: handleError\n    });\n});\n"],"sourceRoot":"../../../../resources/javascript"}