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