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