{"version":3,"sources":["webpack:///./assets/javascripts/modules/utils/Environment.js","webpack:///./assets/javascripts/modules/components/MiniCartComponent.js"],"names":["$","__webpack_require__","d","__webpack_exports__","IS_EGON_VALIDATION","IS_EGON_VALIDATION__ZIP_BASED","IS_PRIVACY_PAGE","IS_VERIFALIA_VALIDATION","IS_AMAZON_PAY_ENABLED","IS_AMAZON_PAY_V2","$html","data","window","matchMedia","matches","MiniCartComponent","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","timeout","updateMiniCartBtn","SELECTORS","miniCart","quickCart","Component","remove","self","$elem","$replace","doAjax","url","dataType","success","resp","log","response","DOMParser","parseFromString","html","querySelector","innerHTML","updateQty","$emit","$customEvents","MINICART_EVENTS","update","quick","error","xhr","console","qty","find","attr","removeClass","addClass","el","$main","closest","type","item","count","tot","totalFormattedPrice","setTimeout","text","updateMinicart","container","on","removeProduct","bindEvents"],"mappings":"4FAAA,SAAAA,GAAAC,EAAAC,EAAAC,EAAA,sBAAAC,IAAAH,EAAAC,EAAAC,EAAA,sBAAAE,IAAAJ,EAAAC,EAAAC,EAAA,sBAAAG,IAAAL,EAAAC,EAAAC,EAAA,sBAAAI,IAAAN,EAAAC,EAAAC,EAAA,sBAAAK,IAAAP,EAAAC,EAAAC,EAAA,sBAAAM,IAAA,IAAMC,EAAQV,EAAE,QAGHI,GADeM,EAAMC,KAAK,QACLD,EAAMC,KAAK,oBAChCN,EAAgCK,EAAMC,KAAK,iBAE3CL,GADYM,OAAOC,WAAW,qBAAqBC,QACJ,2BAA7BJ,EAAMC,KAAK,eAC7BJ,EAA0BG,EAAMC,KAAK,wBACrCH,EAAwBE,EAAMC,KAAK,yBACnCF,EAAmBC,EAAMC,KAAK,oXCLtBI,cAUnB,SAAAA,iGAAcC,CAAAC,KAAAF,GAAA,IAAAG,mKAAAC,CAAAF,MAAAF,EAAAK,WAAAC,OAAAC,eAAAP,IAAAQ,KAAAN,OAAA,OAEZC,EAAKM,QAAU,KACfN,EAAKO,kBAAoBzB,EAAEkB,EAAKQ,UAAUC,UAC1CT,EAAKU,UAAY5B,EAAEkB,EAAKQ,UAAUE,WAJtBV,qUAV+BW,6CAG3C,OACEF,SAAU,eACVC,UAAW,oBACXE,OAAQ,kEAYV,IAAIC,EAAOd,KACPe,EAAQD,EAAKN,kBACbQ,EAAWF,EAAKH,UAEpB,OAAOM,aACLC,IAAKH,EAAMrB,KAAK,OAChByB,SAAU,OACVC,QAAS,SAAUC,GACjBP,EAAKQ,IAAI,uBACT,IAAIC,GAAW,IAAIC,WAAYC,gBAAgBJ,EAAM,aACrDL,EAASU,KAAKH,EAASI,cAAc,iBAAiBC,WAEtDd,EAAKe,YAELf,EAAKgB,MAAMhB,EAAKiB,cAAcC,gBAAgBC,QAASC,MAAOlB,KAEhEmB,MAAO,SAAUC,GACfC,QAAQf,IAAIc,0CAMhB,IAAIE,EAAMtC,KAAKW,UAAU4B,KAAK,iBAAiB7C,KAAK,SAEvB,MAA1BM,KAAKQ,mBACNR,KAAKQ,kBAAkB+B,KAAK,kBAAkBC,KAAK,aAAcF,GAEhEA,EAAM,GACRtC,KAAKQ,kBAAkB+B,KAAK,kBAAkBE,YAAY,UAC1DzC,KAAKW,UAAU8B,YAAY,WAE1BzC,KAAKQ,kBAAkB+B,KAAK,kBAAkBG,SAAS,UACvD1C,KAAKW,UAAU+B,SAAS,gDAIdC,GACZ,IAAI7B,EAAOd,KACPe,EAAQhC,EAAE4D,GACVC,EAAQ7B,EAAM8B,QAAQ/B,EAAKL,UAAUE,WAEzCM,aACEC,IAAKH,EAAMrB,KAAK,QAChByB,SAAU,OACV2B,KAAM,OACN1B,QAAS,SAAUC,GACjB,IAAI0B,EAAOhC,EAAM8B,QAAQ,iBACrBP,EAAMjB,EAAK2B,MACXC,EAAM5B,EAAK6B,oBAEfC,WAAW,WACTJ,EAAKlC,UACJ,KACH+B,EAAML,KAAK,cAAca,KAAKH,GAE9BnC,EAAKuC,iBAEFhC,EAAK2B,MAAQ,GACdlC,EAAKwC,UAAUf,KAAK,aAAaa,KAAKd,GAExCxB,EAAKuC,kBAEPlB,MAAO,SAAUC,GACfC,QAAQf,IAAIc,2CAMhB,IAAItB,EAAOd,KACXjB,EAAE,QAAQwE,GAAG,sBAAuBzC,EAAKL,UAAUI,OAAQ,WACzDC,EAAK0C,cAAcxD,yCAKrBA,KAAKsB,IAAI,gBACTtB,KAAKyD,aACDpE,KACFW,KAAKqD,0BAlGUvD","file":"component-MiniCartComponent.chunks.js","sourcesContent":["const $html = $('html');\n\nexport const CURRENT_LANG = $html.data('lang');\nexport const IS_EGON_VALIDATION = $html.data('egon-validation');\nexport const IS_EGON_VALIDATION__ZIP_BASED = $html.data('egon-zip-base');\nexport const IS_MOBILE = window.matchMedia('(max-width:760px)').matches;\nexport const IS_PRIVACY_PAGE = $html.data('controller') === 'PrivacyLoginController';\nexport const IS_VERIFALIA_VALIDATION = $html.data('verifalia-validation');\nexport const IS_AMAZON_PAY_ENABLED = $html.data('is-amazon-pay-enabled');\nexport const IS_AMAZON_PAY_V2 = $html.data('is-amazon-pay-v2');\n","import Component from '../abstracts/Component';\nimport {doAjax} from '../utils/ajaxUtil';\nimport {IS_PRIVACY_PAGE} from '../utils/Environment';\n\nexport default class MiniCartComponent extends Component {\n\n get SELECTORS() {\n return {\n miniCart: '.js-minicart',\n quickCart: '[data-quick-cart]',\n remove: '.js-removeitem',\n }\n }\n\n constructor() {\n super();\n this.timeout = null;\n this.updateMiniCartBtn = $(this.SELECTORS.miniCart);\n this.quickCart = $(this.SELECTORS.quickCart);\n }\n\n updateMinicart() {\n let self = this;\n let $elem = self.updateMiniCartBtn;\n let $replace = self.quickCart;\n\n return doAjax({\n url: $elem.data('url'),\n dataType: \"html\",\n success: function (resp) {\n self.log('Minicart updated...');\n let response = new DOMParser().parseFromString(resp, 'text/html');\n $replace.html(response.querySelector('.l-quick-cart').innerHTML);\n // update cart counter\n self.updateQty();\n // trigger event\n self.$emit(self.$customEvents.MINICART_EVENTS.update, {quick: $replace});\n },\n error: function (xhr) {\n console.log(xhr);\n }\n });\n }\n\n updateQty() {\n let qty = this.quickCart.find('.l-q-c__title').data('mcqty');\n // desktop\n if(this.updateMiniCartBtn != null) {\n this.updateMiniCartBtn.find('.icon-box__dot').attr('data-mcqty', qty);\n }\n if(qty > 0) {\n \t this.updateMiniCartBtn.find('.icon-box__dot').removeClass('hidden');\n \t this.quickCart.removeClass('empty');\n } else {\n this.updateMiniCartBtn.find('.icon-box__dot').addClass('hidden');\n this.quickCart.addClass('empty');\n }\n }\n\n removeProduct(el) {\n let self = this;\n let $elem = $(el);\n let $main = $elem.closest(self.SELECTORS.quickCart);\n\n doAjax({\n url: $elem.data('href'),\n dataType: \"json\",\n type: 'POST',\n success: function (resp) {\n let item = $elem.closest('.product-item');\n let qty = resp.count;\n let tot = resp.totalFormattedPrice;\n\n setTimeout(() => {\n item.remove();\n }, 800);\n $main.find('.tot-price').text(tot);\n\n self.updateMinicart();\n\n if(resp.count > 0) {\n self.container.find('.qty-icon').text(qty);\n }\n self.updateMinicart();\n },\n error: function (xhr) {\n console.log(xhr);\n }\n });\n }\n\n bindEvents() {\n let self = this;\n $('body').on('click.removeProduct', self.SELECTORS.remove, function() {\n self.removeProduct(this);\n });\n }\n\n render() {\n this.log('Rendering...');\n this.bindEvents();\n if(!IS_PRIVACY_PAGE) {\n this.updateMinicart();\n }\n }\n}\n"],"sourceRoot":""}