{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/AddToWishlistComponent.js"],"names":["AddToWishlistComponent","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","notAdded","$","SELECTORS","added","addToWish","iconWishList","Component","show","on","off","_this2","ctx","e","stopPropagation","$this","$emit","$customEvents","PRODUCT_EVENTS","addtowish","data","removefromwish","$on","sizechanged","_ref","event","payload","code","button","log","addedtowish","$cta","removeClass","CLASSES","addClass","removedfromwish","hasClass","MODAL_EVENTS","afterOpen","_ref2","modalBtn","rootEl","querySelector","vexx","setAttribute","conf","size","addEventListener","preventDefault","close","document","querySelectorAll","forEach","icon","_this3","bindEvents","window","isAddedToWishlist"],"mappings":"oXAEqBA,cAoBnB,SAAAA,iGAAcC,CAAAC,KAAAF,GAAA,IAAAG,mKAAAC,CAAAF,MAAAF,EAAAK,WAAAC,OAAAC,eAAAP,IAAAQ,KAAAN,OAAA,OAGZC,EAAKM,SAAWC,EAAEP,EAAKQ,UAAUF,UACjCN,EAAKS,MAAQF,EAAEP,EAAKQ,UAAUC,OAC9BT,EAAKU,UAAYH,EAAEP,EAAKQ,UAAUE,WAClCV,EAAKW,aAAeJ,EAAEP,EAAKQ,UAAUG,cANzBX,qUApBoCY,6CAEhD,OACEF,UAAW,mBACXJ,SAAU,gBACVG,MAAO,iBACPE,aAAc,iDAKhB,OACEE,KAAM,OACNC,GAAI,gBACJC,IAAK,eACLN,MAAO,mBACPH,SAAU,6DAaD,IAAAU,EAAAjB,KACPkB,EAAMlB,KAGVQ,EAAE,QAAQO,GAAG,kBAAmBG,EAAIT,UAAUF,SAAU,SAAUY,GAChEA,EAAEC,kBACF,IAAIC,EAAQb,EAAER,MACdkB,EAAII,MAAMJ,EAAIK,cAAcC,eAAeC,UAAWJ,GACtDA,EAAMK,KAAK,kBAAmB,MAGhClB,EAAE,QAAQO,GAAG,uBAAwBG,EAAIT,UAAUC,MAAO,SAAUS,GAClEA,EAAEC,kBACF,IAAIC,EAAQb,EAAER,MACdkB,EAAII,MAAMJ,EAAIK,cAAcC,eAAeG,eAAgBN,GAC3DA,EAAMK,KAAK,kBAAmB,iBAGhC1B,KAAK4B,IAAI5B,KAAKuB,cAAcC,eAAeK,YAAY,SAAAC,GAAsBA,EAApBC,MAAoB,IAAbC,EAAaF,EAAbE,QACxDC,EAAOzB,EAAEwB,EAAQE,QAAQR,KAAK,QAClCT,EAAKkB,IAAIF,GACThB,EAAKN,UAAUe,KAAK,OAAQO,KAIhCjC,KAAK4B,IAAI5B,KAAKuB,cAAcC,eAAeY,YAAa,SAACjB,GACvD,IAAIc,EAAOzB,EAAEW,EAAEa,SAASN,KAAK,QACzBW,EAAO7B,EAAEW,EAAEa,SAEfK,EAAKC,YAAYrB,EAAKsB,QAAQvB,KAAKwB,SAASvB,EAAKsB,QAAQxB,IACzDsB,EAAKX,KAAK,OAAV,2CAA6DO,KAG/DjC,KAAK4B,IAAI5B,KAAKuB,cAAcC,eAAeiB,gBAAiB,SAACtB,GAC3D,IAAIc,EAAOzB,EAAEW,EAAEa,SAASN,KAAK,QACzBW,EAAO,IAETA,EADE7B,EAAEW,EAAEa,SAASU,SAAS,mBACjBlC,EAAEW,EAAEa,SAEJxB,gCAAgCyB,EAAhC,MAGJK,YAAYrB,EAAKsB,QAAQxB,IAAIyB,SAASvB,EAAKsB,QAAQvB,KACxDqB,EAAKX,KAAK,OAAV,+BAIF1B,KAAK4B,IAAI5B,KAAKuB,cAAcoB,aAAaC,UAAW,SAAAC,GAAqBA,EAAnBd,MAAmB,IAAbC,EAAaa,EAAbb,QAEtDc,EAAWd,EAAQe,OAAOC,cAAc9B,EAAIT,UAAUE,WAE1D,GAAgB,MAAZmC,EAAJ,CAEA,IAAIG,EAAOjB,EAEXc,EAASI,aAAa,YAAYlB,EAAQmB,KAAKC,MAE/CN,EAASO,iBAAiB,QAAQ,SAASlC,GACzCA,EAAEmC,iBACFnC,EAAEC,kBAEF,IAAIC,EAAQb,EAAER,MACdkB,EAAII,MAAMJ,EAAIK,cAAcC,eAAeC,UAAWJ,GAEtD4B,EAAKM,yDAOKC,SAASC,iBAAiB,kBAClCC,QAAQ,SAACC,GACbnD,EAAEmD,GAAMjC,KAAK,kBAAmB,uCAI3B,IAAAkC,EAAA5D,KACPA,KAAKmC,IAAI,gBACTnC,KAAK6D,aACLC,OAAOT,iBAAiB,OAAQ,SAACtB,GAC/B6B,EAAKG,+BA9GUjE","file":"component-AddToWishlistComponent.chunks.js","sourcesContent":["import Component from '../abstracts/Component';\n\nexport default class AddToWishlistComponent extends Component {\n  get SELECTORS() {\n    return {\n      addToWish: '.js-wishlist-cta',\n      notAdded: '.js-addtowish',\n      added: '.js-added-wish',\n      iconWishList: '#iconWishlist',\n    };\n  }\n\n  get CLASSES() {\n    return {\n      show: 'show',\n      on: 'js-added-wish',\n      off: 'js-addtowish',\n      added: 'icon-wishlist-on',\n      notAdded: 'icon-wishlist'\n    };\n  }\n\n  constructor() {\n    super();\n\n    this.notAdded = $(this.SELECTORS.notAdded);\n    this.added = $(this.SELECTORS.added);\n    this.addToWish = $(this.SELECTORS.addToWish);\n    this.iconWishList = $(this.SELECTORS.iconWishList);\n  }\n\n  bindEvents() {\n    let ctx = this;\n\n    //click on wishlist\n    $('body').on('click.addtowish', ctx.SELECTORS.notAdded, function (e) {\n      e.stopPropagation();\n      let $this = $(this);\n      ctx.$emit(ctx.$customEvents.PRODUCT_EVENTS.addtowish, $this);\n      $this.data('tracking-action', '');\n    });\n\n    $('body').on('click.removefromwish', ctx.SELECTORS.added, function (e) {\n      e.stopPropagation();\n      let $this = $(this);\n      ctx.$emit(ctx.$customEvents.PRODUCT_EVENTS.removefromwish, $this);\n      $this.data('tracking-action', 'wishlistAdd');\n    });\n\n    this.$on(this.$customEvents.PRODUCT_EVENTS.sizechanged,({event, payload}) => {\n        let code = $(payload.button).data('code');\n        this.log(code);\n        this.addToWish.data('code', code);\n      }\n    );\n\n    this.$on(this.$customEvents.PRODUCT_EVENTS.addedtowish, (e) => {\n      let code = $(e.payload).data('code');\n      let $cta = $(e.payload);\n      // $(this.SELECTORS.iconWishList+\"-\"+code).removeClass(this.CLASSES.notAdded).addClass(this.CLASSES.added);\n      $cta.removeClass(this.CLASSES.off).addClass(this.CLASSES.on);\n      $cta.data('href', `/action/miniwishlist/remove?productCode=${code}`);\n    });\n\n    this.$on(this.$customEvents.PRODUCT_EVENTS.removedfromwish, (e) => {\n      let code = $(e.payload).data('code');\n      let $cta = '';\n      if ($(e.payload).hasClass('js-wishlist-cta')) {\n        $cta = $(e.payload);\n      } else {\n        $cta = $(`.js-wishlist-cta[data-code=${code}]`);\n      }\n      // $(this.SELECTORS.iconWishList+\"-\"+code).removeClass(this.CLASSES.added).addClass(this.CLASSES.notAdded);\n      $cta.removeClass(this.CLASSES.on).addClass(this.CLASSES.off);\n      $cta.data('href', `/action/ajax/wishlist-add`);\n    });\n\n    // modal error exceed quantity afterOpen\n    this.$on(this.$customEvents.MODAL_EVENTS.afterOpen, ({event,payload}) => {\n      // find the wishlist button in the modal\n      let modalBtn = payload.rootEl.querySelector(ctx.SELECTORS.addToWish);\n      // check\n      if (modalBtn == null) return;\n      // vex instance\n      let vexx = payload;\n      // update size\n      modalBtn.setAttribute('data-code',payload.conf.size);\n      // bind click to add to wishlist\n      modalBtn.addEventListener('click',function(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        // go add to wish\n        let $this = $(this);\n        ctx.$emit(ctx.$customEvents.PRODUCT_EVENTS.addtowish, $this);\n        // close modal\n        vexx.close();\n      });\n    });\n  }\n\n  isAddedToWishlist() {\n    //check on load to unset tracking action, avoids tracking call on remove-from-wishlist\n    const icons = document.querySelectorAll(\".js-added-wish\");\n    icons.forEach((icon) => {\n      $(icon).data('tracking-action', '');\n    });\n  }\n\n  render() {\n    this.log('Rendering...');\n    this.bindEvents();\n    window.addEventListener('load', (event) => {\n      this.isAddedToWishlist();\n    });\n  }\n}\n"],"sourceRoot":""}