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