{"version":3,"sources":["webpack:///./assets/javascripts/modules/components/MiniWishlistComponent.js"],"names":["MiniWishlistComponent","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","timeout","timeout2","container","$","SELECTORS","main","item","addedMsg","icon","remove","msg","updated","lastRemoved","notified","trackingComponent","TrackingComponent","Component","wishlistItem","show","active","removing","_this2","ms","Math","max","document","documentElement","clientWidth","window","innerWidth","clearTimeout","removeClass","addClass","CLASSES","keyboard","querySelector","focusableContainer","firstFocusable","$getFirstFocusable","setTimeout","focus","_this3","isNotification","ctx","$elem","ajax","url","data","dataType","success","resp","$resp","attr","checkNotificationWishlist","children","hasClass","log","html","error","xhr","console","el","isWishlistPage","code","parents","find","type","count","$emit","$customEvents","PRODUCT_EVENTS","removedfromwish","_this4","$on","_ref","event","firstUpdate","_ref2","DROPDOWN_EVENTS","close","source","currentTarget","res","on","e","currentDropdown","parentElement","which","keyCode","preventDefault","classList","contains","closeAll","br","_this5","open","target","ct","updateWishlist","then","is","_this6","pagesEnabled","i","length","checkNotification","wishlistCount","parseInt","wishlistNotificationDate","sessionStorage","getItem","wishlistNotificationConfirm","openWishlistReminder","timeToShow","newDate","Date","setItem","difference","_this7","addtowish","payload","originalFocus","trackAction","addedtowish","openWishlist","removefromwish","removeProduct","removefromwishlistpage","$matchMedia","desktopBehaviour","addEventListener","$off","bindEvents"],"mappings":"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","file":"components-MiniWishlistComponent.chunks.js","sourcesContent":["import Component from '../abstracts/Component';\nimport TrackingComponent from \"./TrackingComponent\";\n\nexport default class MiniWishlistComponent extends Component {\n\n  get SELECTORS() {\n    return {\n      container: '.js-wishlist-dropdown',\n      main: '.js-wishlist',\n      item: '.wishlist .product-item',\n      wishlistItem: '.wishlist-item',\n      addedMsg: '.item-added',\n      icon: '.action.wishlist',\n      remove: '.js-remove-wish',\n      msg: '.notification-message-wrapper'\n    };\n  }\n\n  get CLASSES() {\n    return {\n      show: 'show',\n      active: 'active',\n      removing: 'removing'\n    };\n  }\n\n  constructor() {\n    super();\n\n    this.timeout = null;\n    this.timeout2 = null;\n    this.container = $(this.SELECTORS.container);\n    this.main = $(this.SELECTORS.main);\n    this.item = $(this.SELECTORS.item);\n    this.addedMsg = $(this.SELECTORS.addedMsg);\n    this.icon = $(this.SELECTORS.icon);\n    this.remove = $(this.SELECTORS.remove);\n    this.msg = $(this.SELECTORS.msg);\n    this.updated = false;\n    this.lastRemoved = null;\n    this.notified = false;\n    this.trackingComponent = new TrackingComponent();\n  }\n\n  openWishlist() {\n    let ms = 3000;\n    if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 1280) {\n      ms = 2000;\n    }\n    clearTimeout(this.timeout);\n    clearTimeout(this.timeout2);\n    this.container.removeClass('notify');\n    this.container.addClass(this.CLASSES.show);\n    this.container.addClass('item-added');\n    $('.backdrop-header').addClass('visible');\n    const keyboard = document.querySelector('[data-whatinput=\"keyboard\"]');\n    const focusableContainer = document.querySelector(this.SELECTORS.container + ' .added-notify');\n    const firstFocusable = this.$getFirstFocusable(focusableContainer);\n    if (keyboard) {\n      setTimeout(() => {\n        firstFocusable.focus();\n      }, 200);\n    } else {\n      this.timeout = setTimeout(() => {\n        this.container.removeClass(this.CLASSES.show);\n        $('.backdrop-header').removeClass('visible');\n        this.timeout2 = setTimeout(() => {\n          this.container.removeClass('item-added');\n        }, 300);\n      }, ms);\n    }\n  }\n\n  openWishlistReminder() {\n    let ms = 3000;\n    if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 1280) {\n      ms = 2000;\n    }\n    clearTimeout(this.timeout);\n    clearTimeout(this.timeout2);\n    this.container.removeClass('item-added');\n    this.container.addClass(this.CLASSES.show);\n    this.container.addClass('notify');\n    $('.backdrop-header').addClass('visible');\n    const keyboard = document.querySelector('[data-whatinput=\"keyboard\"]');\n    const focusableContainer = document.querySelector(this.SELECTORS.container + ' .notlogged-notify');\n    const firstFocusable = this.$getFirstFocusable(focusableContainer);\n    if (keyboard) {\n      setTimeout(() => {\n        firstFocusable.focus();\n      }, 200);\n    } else {\n      this.timeout = setTimeout(() => {\n        this.container.removeClass(this.CLASSES.show);\n        $('.backdrop-header').removeClass('visible');\n        this.timeout2 = setTimeout(() => {\n          this.container.removeClass('notify');\n        }, 300);\n      }, ms);\n    }\n  }\n\n  updateWishlist(isNotification) {\n\n    let ctx = this;\n    let $elem = ctx.main;\n\n    return $.ajax({\n      url: $elem.data('href'),\n      dataType: \"html\",\n      success: function (resp) {\n        let $resp = $(resp);\n        ctx.main.attr('data-wishlist-count', $resp.attr('data-wishlist-count'));\n        if (!isNotification) {\n          ctx.checkNotificationWishlist();\n        }\n        let isEmpty = $resp.children().hasClass('empty-body');\n        if (isEmpty) {\n          ctx.icon.removeClass('icon-wishlist-on');\n          ctx.icon.addClass('icon-wishlist-off');\n        }\n        ctx.log('Miniwishlist updated...');\n        $elem.html(resp);\n      },\n      error: function (xhr) {\n        console.log(xhr);\n      }\n    });\n  }\n\n  removeProduct(el, isWishlistPage) {\n\n    let ctx = this;\n    let $elem = $(el);\n    let code = $elem.attr('data-code');\n\n    // TODO for undo button\n    // ctx.lastRemoved = $elem.parent();\n\n    // per dropdown\n    if (!isWishlistPage) {\n      ctx.container.removeClass(ctx.CLASSES.show);\n      $('.backdrop-header').removeClass('visible');\n    }\n\n    setTimeout(() => {\n\n      if (!isWishlistPage) {\n        ctx.container.removeClass('item-added');\n      }\n\n      $.ajax({\n        url: isWishlistPage ? $elem.parents(ctx.SELECTORS.wishlistItem).find(ctx.SELECTORS.remove).attr('data-href') : $elem.attr('data-href'),\n        dataType: \"json\",\n        type: 'POST',\n        success: function (resp) {\n\n          let item = $(`${ctx.SELECTORS.wishlistItem}[data-code=\"${code}\"]`);\n\n          // setTimeout(function () {\n          if (resp.count < 1) {\n            ctx.msg.addClass(ctx.CLASSES.show);\n          } else {\n            ctx.msg.removeClass(ctx.CLASSES.show);\n          }\n          // }, 300);\n\n          item.addClass(ctx.CLASSES.removing);\n          setTimeout(function () {\n            item.remove();\n          }, 800);\n\n\n          ctx.$emit(ctx.$customEvents.PRODUCT_EVENTS.removedfromwish, el)\n\n        },\n        error: function (xhr) {\n          console.log(xhr);\n        }\n      });\n\n    }, 300);\n\n  }\n\n  desktopBehaviour() {\n\n    this.$on('mouseenter.wishlist', ({\n      event\n    }) => {\n      clearTimeout(this.timeout);\n      clearTimeout(this.timeout2);\n      //update wishlist only on the first over\n      this.firstUpdate(event, 'lg');\n\n    }, `${this.SELECTORS.main}, ${this.SELECTORS.container}`);\n\n    this.$on('mouseleave.wishlist', ({\n      event\n    }) => {\n      this.$emit(this.$customEvents.DROPDOWN_EVENTS.close, {\n        source: event.currentTarget,\n        res: 'lg'\n      });\n    }, 'body', `${this.SELECTORS.container}, ${this.SELECTORS.container}`);\n\n    $(`${this.SELECTORS.container} ${this.SELECTORS.icon}`).on(\"keydown\", e => {\n      const currentDropdown = e.currentTarget.parentElement;\n      if (e.which == 13 || e.keyCode == 13) {\n        e.preventDefault();\n        if (currentDropdown.classList.contains(this.CLASSES.show)) {\n          // faccio l'emit del close\n          this.$emit(this.$customEvents.DROPDOWN_EVENTS.close, {\n            source: currentDropdown,\n            res: 'lg'\n          });\n        } else {\n          // faccio l'emit dell'open\n          clearTimeout(this.timeout);\n          clearTimeout(this.timeout2);\n          this.$emit(this.$customEvents.DROPDOWN_EVENTS.closeAll);\n          this.firstUpdate(currentDropdown, 'lg');\n        }\n      }\n    });\n\n  }\n\n  firstUpdate(event, br) {\n    if (!this.updated) {\n      this.updated = true;\n      let ct;\n\n      if (event.target) {\n        ct = event.currentTarget;\n      } else {\n        ct = event;\n      }\n\n      this.updateWishlist().then(res => {\n        if ($(`${this.SELECTORS.container}:not(.mobile)`).is(\":hover\") || this.icon.is(\":focus\")) {\n          this.$emit(this.$customEvents.DROPDOWN_EVENTS.open, {\n            source: ct,\n            res: br\n          });\n        }\n      });\n\n    } else {\n      this.$emit(this.$customEvents.DROPDOWN_EVENTS.open, {\n        source: event.target ? event.currentTarget : event,\n        res: br\n      });\n    }\n  }\n\n  checkNotificationWishlist() {\n    // se siamo all'interno di queste pagine la wishlist notification partirĂ \n    const pagesEnabled = [\"t-homepage\", \"t-category-folded\", \"t-category\", \"t-sales\", \"t-editorial-listing\", \"t-clp\", \"t-product\"];\n    for (let i = 0; i < pagesEnabled.length; i++) {\n      if ($('body').hasClass(pagesEnabled[i])) break;\n      if (pagesEnabled.length - 1 == i) return;\n    }\n\n    let checkNotification = $(`${this.SELECTORS.main}[data-logged=\"false\"]`);\n\n    if (checkNotification.length) {\n      let wishlistCount = parseInt(checkNotification.attr('data-wishlist-count'));\n      let wishlistNotificationDate = sessionStorage.getItem(\"wishlistNotification\");\n      let wishlistNotificationConfirm = sessionStorage.getItem(\"wishlistNotificationConfirm\");\n\n      if (wishlistCount >= 3) {\n        // fires after 15s\n        setTimeout(() => {\n\n          if (wishlistNotificationDate == null) {\n            this.log('wishlist reminder');\n            if (!this.updated) {\n              this.updated = true;\n\n              this.updateWishlist(true).then(res => {\n                this.openWishlistReminder();\n              });\n\n            } else {\n              this.openWishlistReminder();\n            }\n          }\n\n          let timeToShow = 0;\n          if (wishlistNotificationDate == null) {\n            let newDate = new Date();\n            sessionStorage.setItem(\"wishlistNotification\", newDate);\n            // default time to show (60s x 5m - 15s = 285000ms)\n            timeToShow = 285000;\n          } else {\n            if(!this.notified){\n              let actualDate = new Date();\n              let notificationDate = new Date(wishlistNotificationDate);\n              var difference = actualDate - notificationDate;\n              if (difference < 285000) {\n                timeToShow = 285000 - difference;\n              }\n            }\n          }\n\n          if (timeToShow > 0) {\n            this.notified = true;\n            setTimeout(() => {\n              if (wishlistNotificationConfirm == null) {\n                this.log('last wishlist reminder');\n                if (!this.updated) {\n                  this.updated = true;\n\n                  this.updateWishlist(true).then(res => {\n                    this.openWishlistReminder();\n                  });\n\n                } else {\n                  this.openWishlistReminder();\n                }\n                sessionStorage.setItem(\"wishlistNotificationConfirm\", \"true\");\n              }\n            }, timeToShow);\n          }\n\n        }, 15000);\n      }\n\n    }\n  }\n\n  bindEvents() {\n\n    let ctx = this;\n\n    this.$on(this.$customEvents.PRODUCT_EVENTS.addtowish, (e) => {\n\n      let $elem = $(e.payload);\n      let url = $elem.attr('data-href');\n      this.originalFocus = e.payload;\n\n      this.trackingComponent.trackAction('wishlistAdd', $elem.data(), $elem);\n\n      $.ajax({\n        url: url,\n        data: {\n          code: $elem.attr('data-code')\n        },\n        dataType: \"html\",\n        success: function (resp) {\n          $elem.attr('data-source', '');\n          ctx.$emit(ctx.$customEvents.PRODUCT_EVENTS.addedtowish, $elem);\n          if (resp > 0) {\n            ctx.icon.removeClass('icon-wishlist-off');\n            ctx.icon.addClass('icon-wishlist-on');\n          }\n        },\n        error: function (xhr) {\n          ctx.log('error in add to wishlist');\n        }\n      });\n\n    });\n\n    this.$on(this.$customEvents.PRODUCT_EVENTS.addedtowish, (e) => {\n      let source = $(e.payload).attr('data-source');\n      if (source != \"size-check\") {\n        this.updateWishlist().then(res => {\n          this.updated = true;\n          this.openWishlist();\n          // TODO 'random' notification reminder\n        });\n      }\n    });\n\n    $('body').on('click.wishlist', ctx.SELECTORS.remove, function () {\n      ctx.$emit(ctx.$customEvents.PRODUCT_EVENTS.removefromwish, this)\n    });\n\n    this.$on(this.$customEvents.PRODUCT_EVENTS.removefromwish, (e) => {\n      this.removeProduct(e.payload);\n    });\n\n    this.$on(this.$customEvents.PRODUCT_EVENTS.removefromwishlistpage, (e) => {\n      this.removeProduct(e.payload, true);\n    });\n\n    this.$on(this.$customEvents.PRODUCT_EVENTS.removedfromwish, (e) => {\n      let source = $(e.payload).attr('data-source');\n      if (source != \"size-check\") {\n        this.updateWishlist();\n      }\n    });\n\n    this.checkNotificationWishlist();\n\n    if (this.$matchMedia(null, 'lg')) {\n      this.desktopBehaviour();\n    }\n\n    window.addEventListener('resize', () => {\n      if (this.$matchMedia(null, 'lg')) {\n        this.desktopBehaviour();\n      } else {\n        this.$off('mouseenter.wishlist', `${this.SELECTORS.main}, ${this.SELECTORS.container}`);\n        this.$off('mouseleave.wishlist', `${this.SELECTORS.main}, ${this.SELECTORS.container}`);\n      }\n    });\n\n  }\n\n  render() {\n    this.bindEvents();\n  }\n}\n"],"sourceRoot":""}