{"version":3,"sources":["webpack://[name]/./src/js/components/WishlistComponent.js"],"names":["WishlistComponent","_BaseComponent","element","_this","_classCallCheck","_callSuper","_defineProperty","$el","querySelectorAll","forEach","el","removeEventListener","toggleFavourite","addEventListener","event","preventDefault","currentTarget","loggedInPromise","then","response","icon","brand","dataset","remove","classList","contains","fetch","concat","PATHNAME","credentials","method","headers","Accept","status","json","Error","success","className","replace","tracking","initElement","_inherits","_createClass","key","get","this","$options","pathname","location","BaseComponent"],"mappings":"qgBACmD,IAE9BA,EAAiB,SAAAC,GAMpC,SAAAD,EAAYE,GAAS,IAAAC,EAEA,OAFAC,IAAA,KAAAJ,GACnBG,EAAAE,EAAA,KAAAL,EAAA,CAAME,IAASI,IAAAH,EAAA,eAIH,SAAAD,IACXA,GAAWC,EAAKI,KAAKC,iBAAiB,gBAAgBC,SAAQ,SAAAC,GAC7DA,EAAGC,oBAAoB,QAASR,EAAKS,iBACrCF,EAAGG,iBAAiB,QAASV,EAAKS,uBAErCN,IAAAH,EAAA,mBAEiB,SAAAW,GAEhBA,EAAMC,iBACN,IAAMC,EAAgBF,EAAME,cAE5BC,4BAAkBC,MAAK,SAAAC,GAGrB,GAAKA,EAAL,CAIA,IACMC,EAAOJ,EACPK,EAAQL,EAAcM,QAAQD,MAC9BE,EAASH,EAAKI,UAAUC,SAAS,gBACvCC,MAAM,GAADC,OAAIxB,EAAKyB,SAAQ,qCAAAD,OAAoCN,EAAK,YAAAM,OAAWJ,GAAU,CAClFM,YAAa,cACbC,OAAQ,OACRC,QAAS,CACPC,OAAQ,sBAGXd,MAAK,SAAAC,GACJ,GAAwB,MAApBA,EAASc,OAGX,OADgBd,EAASe,OAGzB,MAAM,IAAIC,MAAM,uBAGnBjB,MAAK,SAAAkB,GACCA,IAILhB,EAAKiB,UAAYjB,EAAKiB,UAAUC,QAAQ,kBAAmB,YAAFX,OAAcJ,EAAS,GAAK,QAEjFP,EAAcM,QAAQiB,WACxBvB,EAAcM,QAAQiB,SAAWvB,EAAcM,QAAQiB,SAClDD,QAAQ,kBAAmBf,EAAS,MAAQ,sBAnDvDpB,EAAKqC,cAAcrC,EACpB,OAAAsC,IAAAzC,EAAAC,GAAAyC,IAAA1C,EAAA,EAAA2C,IAAA,WAAAC,IAPD,WACE,OAAOC,KAAKC,SAASC,UAAYC,SAASD,aAHR,CAASE","file":"js/component-WishlistComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../abstracts/BaseComponent';\nimport { loggedInPromise } from './LoginComponent';\n\nexport default class WishlistComponent extends BaseComponent {\n\n get PATHNAME() {\n return this.$options.pathname || location.pathname;\n }\n\n constructor(element) {\n super(element);\n this.initElement();\n }\n\n initElement = element => {\n (element || this.$el).querySelectorAll('.js-wishlist').forEach(el => {\n el.removeEventListener('click', this.toggleFavourite);\n el.addEventListener('click', this.toggleFavourite);\n });\n }\n\n toggleFavourite = event => {\n // consoole.log('toggleFavourite');\n event.preventDefault();\n const currentTarget = event.currentTarget;\n\n loggedInPromise().then(response => {\n // consoole.log('response', response);\n\n if (!response) {\n return;\n }\n\n const item = currentTarget;\n const icon = currentTarget;\n const brand = currentTarget.dataset.brand;\n const remove = icon.classList.contains('icon-wish-on');\n fetch(`${this.PATHNAME}?favourite=true&async=true&brand=${brand}&remove=${remove}`, {\n credentials: 'same-origin',\n method: 'POST',\n headers: {\n Accept: 'application/json'\n }\n })\n .then(response => {\n if (response.status === 200) {\n // make sure the server returned true before changing the icon\n const success = response.json();\n return success;\n } else {\n throw new Error(\"Not 200 response\");\n }\n })\n .then(success => {\n if (!success) {\n return;\n }\n\n icon.className = icon.className.replace(/icon-wish(-on)?/, `icon-wish${remove ? '' : '-on'}`);\n\n if (currentTarget.dataset.tracking) {\n currentTarget.dataset.tracking = currentTarget.dataset.tracking\n .replace(/^(add|remove)\\b/, remove ? 'add' : 'remove');\n }\n });\n });\n }\n\n}\n"],"sourceRoot":""}