{"version":3,"sources":["webpack:///./src/client/default/js/components/miniCartComponent.js","webpack:///./src/client/default/js/base/baseComponent.js"],"names":["MiniCartComponent","element","initClickEvent","checkScrollTop","this","CUSTOM_MESSAGES","UPDATE_CART_EVENTS","quantityUpdate","updateBadgeQty","totalPriceUpdate","updateTotalPrice","closeMinicart","resetLayer","maxLineItemsExceeded","BREAKPOINTER","BREAKPOINT_CHANGE","onBreakpointChange","infoStrip","mainHeader","badge","tooltip","priceBadge","totalPrice","button","closeButton","pushApp","floatingError","floatingErrorMessage","HIDE_BADGE","NO_HOVER","SHOW_TOOLTIP","SCROLL_TOP","SHOW_MINICART_TOOLTIP","cartQty","anchorButtonReplacer","parseInt","$el","dataset","appPostMessage","qtyInCart","error","console","_this","$on","EVENTS_ID","event","handleEmptyCartClick","e","preventDefault","miniCartTooltip","querySelector","SELECTORS","classList","contains","CLASSES","remove","add","setTimeout","value","$off","innerHTML","setAttribute","total","replace","trim","lastScrollTop","window","addEventListener","st","pageYOffset","document","documentElement","scrollTop","$options","sidebar","initialStateButton","ariaLabel","getAttribute","isMobile","tagName","anchor","createElement","href","removeChild","appendChild","isDesktop","body","className","moveInfostrip","scrollTo","insertBefore","nextSibling","firstChild","message","timeout","closeBtn","innerText","style","display","clearTimeout","action","BaseComponent","_componentElement","_checkMessages","compOptions","options","Object","keys","filter","entry","includes","forEach","optionValue","cleanEntry","cleanOptionKey","JSON","parse","convertType","deepFreeze","events","cb","elements","Bean","on","stopPropagation","one","off","fire","container","_loading","EMIT","LOADER_EVENTS","show","icon","hide","option","optionReturn","key","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent"],"mappings":"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","file":"js/component-miniCartComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\nimport { appPostMessage } from '../utilities/postMessage';\n\nexport default class MiniCartComponent extends BaseComponent {\n get Messages() {\n return {\n [this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.quantityUpdate]: this.updateBadgeQty,\n [this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.totalPriceUpdate]: this.updateTotalPrice,\n [this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.closeMinicart]: this.resetLayer,\n [this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.maxLineItemsExceeded]: this.maxLineItemsExceeded,\n [this.CUSTOM_MESSAGES.BREAKPOINTER.BREAKPOINT_CHANGE]: this.onBreakpointChange\n };\n }\n\n get SELECTORS() {\n return {\n infoStrip: '.information-strip.is-visible',\n mainHeader: 'header.header',\n badge: '.minicart__badge',\n tooltip: '.minicart__tooltip',\n priceBadge: '.minicart__pricebadge',\n totalPrice: '.minicart__totalprice',\n button: '.minicart__button',\n closeButton: '.minicart-close',\n pushApp: '.push-app-content-wrapper',\n floatingError: '.floating-error',\n floatingErrorMessage: '.floating-error-message'\n };\n }\n\n get CLASSES() {\n return {\n HIDE_BADGE: 'no-show',\n NO_HOVER: 'no-hover',\n SHOW_TOOLTIP: 'visible',\n SCROLL_TOP: 'scroll-top'\n };\n }\n\n get EVENTS_ID() {\n return {\n SHOW_MINICART_TOOLTIP: 'click.miniCart'\n };\n }\n\n constructor(element) {\n super(element);\n\n this.initClickEvent();\n this.checkScrollTop();\n }\n\n initClickEvent() {\n let cartQty;\n this.anchorButtonReplacer();\n try {\n cartQty = parseInt(this.$el.dataset.cartQty);\n appPostMessage({ qtyInCart: cartQty });\n } catch (error) {\n console.error(error);\n }\n if (cartQty == 0) {\n const _this = this;\n this.$on(this.EVENTS_ID.SHOW_MINICART_TOOLTIP, (event) => this.handleEmptyCartClick(event, _this));\n }\n }\n\n handleEmptyCartClick(e, _this) {\n e.preventDefault();\n const miniCartTooltip = _this.$el.querySelector(_this.SELECTORS.tooltip);\n if (miniCartTooltip) {\n if (miniCartTooltip.classList.contains(_this.CLASSES.SHOW_TOOLTIP)) {\n miniCartTooltip.classList.remove(_this.CLASSES.SHOW_TOOLTIP);\n } else {\n miniCartTooltip.classList.add(_this.CLASSES.SHOW_TOOLTIP);\n setTimeout(() => {\n miniCartTooltip.classList.remove(_this.CLASSES.SHOW_TOOLTIP);\n }, 2500);\n }\n }\n }\n\n updateBadgeQty(value) {\n const badge = this.$el.querySelector(this.SELECTORS.badge);\n this.$off(this.EVENTS_ID.SHOW_MINICART_TOOLTIP);\n if (parseInt(value.value) > 0) {\n badge.classList.remove(this.CLASSES.HIDE_BADGE);\n this.$el.classList.add(this.CLASSES.NO_HOVER);\n } else {\n const _this = this;\n this.$el.classList.remove(this.CLASSES.NO_HOVER);\n this.$on(this.EVENTS_ID.SHOW_MINICART_TOOLTIP, (event) => this.handleEmptyCartClick(event, _this));\n badge.classList.add(this.CLASSES.HIDE_BADGE);\n }\n badge.innerHTML = value.value;\n let button = this.$el.querySelector(this.SELECTORS.button);\n if (button) {\n button.setAttribute(\n 'aria-label',\n `Carrello${parseInt(value.value) > 0 ? ', ' + parseInt(value.value) + (parseInt(value.value) > 1 ? ' prodotti' : ' prodotto') : ''}${\n value.total && parseInt(value.value) > 0 ? ', totale ' + value.total.replace('€', '').trim() + '€' : ''\n }`\n );\n }\n appPostMessage({ qtyInCart: value.value });\n }\n\n updateTotalPrice(value) {\n const priceBadge = this.$el.querySelector(this.SELECTORS.priceBadge);\n const totalPrice = this.$el.querySelector(this.SELECTORS.totalPrice);\n if (value.value != 0) {\n priceBadge.classList.remove(this.CLASSES.HIDE_BADGE);\n } else {\n priceBadge.classList.add(this.CLASSES.HIDE_BADGE);\n }\n totalPrice.innerHTML = value.value.replace('€', '').trim() + '€';\n // appPostMessage({ priceInCart: value.value });\n }\n\n checkScrollTop() {\n var lastScrollTop = 0;\n window.addEventListener(\n 'scroll',\n () => {\n var st = window.pageYOffset || document.documentElement.scrollTop;\n if (st > lastScrollTop && this.$el.classList.contains(this.CLASSES.SCROLL_TOP)) {\n this.$el.classList.remove(this.CLASSES.SCROLL_TOP);\n } else if (st < lastScrollTop && !this.$el.classList.contains(this.CLASSES.SCROLL_TOP)) {\n this.$el.classList.add(this.CLASSES.SCROLL_TOP);\n }\n lastScrollTop = st <= 0 ? 0 : st;\n },\n false\n );\n }\n\n onBreakpointChange() {\n this.anchorButtonReplacer();\n }\n\n anchorButtonReplacer() {\n if (this.$options.sidebar && !document.querySelector('body').classList.contains('cart')) {\n let initialStateButton = this.$el.querySelector(this.SELECTORS.button);\n let ariaLabel = initialStateButton.getAttribute('aria-label');\n if (window.isMobile() && initialStateButton.tagName == 'BUTTON') {\n var anchor = document.createElement('a');\n anchor.setAttribute('href', this.$options.href);\n anchor.setAttribute('class', 'minicart__button');\n anchor.setAttribute('aria-label', ariaLabel);\n this.$el.removeChild(initialStateButton);\n this.$el.appendChild(anchor);\n } else if (window.isDesktop() && initialStateButton.tagName == 'A') {\n var button = document.createElement('button');\n button.setAttribute('class', 'minicart__button');\n button.setAttribute('aria-label', ariaLabel);\n button.setAttribute('aria-haspopup', 'dialog');\n button.setAttribute('aria-controls', 'carrello');\n this.$el.removeChild(initialStateButton);\n this.$el.appendChild(button);\n }\n }\n }\n\n resetLayer() {\n setTimeout(() => {\n document.body.className = document.body.className.replace(/\\bopenStoresList.*?\\b/g, '');\n if (this.$options.moveInfostrip && document.querySelector(this.SELECTORS.infoStrip)) {\n window.scrollTo(0, 0);\n document.querySelector(this.SELECTORS.mainHeader).classList.remove('moveinfostrip');\n document.querySelector(this.SELECTORS.mainHeader).classList.add('noanimation');\n document\n .querySelector(this.SELECTORS.mainHeader)\n .insertBefore(\n document.querySelector(this.SELECTORS.infoStrip),\n document.querySelector(this.SELECTORS.pushApp)\n ? document.querySelector(this.SELECTORS.pushApp).nextSibling\n : document.querySelector(this.SELECTORS.mainHeader).firstChild\n );\n }\n document.body.className = document.body.className.replace(/\\bopenExtraLayer.*?\\b/g, '');\n document.body.className = document.body.className.replace(/\\bopenStoresList.*?\\b/g, '');\n document.body.className = document.body.className.replace(/\\bopenSingleStoreDeliveryList.*?\\b/g, '');\n }, 400);\n }\n\n maxLineItemsExceeded(message) {\n var floatingError = document.querySelector(this.SELECTORS.floatingError);\n var floatingErrorMessage = document.querySelector(this.SELECTORS.floatingErrorMessage);\n var timeout;\n if (floatingError && floatingErrorMessage) {\n var closeBtn = floatingError.querySelector('.icon-close');\n floatingErrorMessage.innerText = message.message;\n floatingError.style.display = 'flex';\n closeBtn.addEventListener('click', function() {\n clearTimeout(timeout);\n floatingError.style.display = 'none';\n });\n clearTimeout(timeout);\n timeout = setTimeout(function() {\n floatingError.style.display = 'none';\n }, 6000);\n } else {\n appPostMessage({ action: 'MAX_ITEM_IN_CART', message: message.message });\n }\n }\n}\n","/* eslint-disable new-cap */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable no-underscore-dangle */\n\nimport Bean from 'bean';\nimport deepFreeze from '../utilities/freeze';\nimport BaseGiaComponent from './baseGiaComponent';\n\nexport default class BaseComponent extends BaseGiaComponent {\n /**\n * @returns {HTMLElement}\n */\n get $el() {\n return /** @type {HTMLElement} */ (this._componentElement);\n }\n\n get $options() {\n const compOptions = {};\n const options = { ...this.$el.dataset };\n const optionsEntires = Object.keys(options).filter((entry) => entry.includes('option'));\n optionsEntires.forEach((entry) => {\n const cleanEntry = BaseComponent.cleanOptionKey(entry);\n let optionValue;\n if (options[entry].includes('{') && options[entry].includes('}')) {\n optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n } else {\n optionValue = BaseComponent.convertType(options[entry]);\n }\n compOptions[cleanEntry] = optionValue;\n });\n return deepFreeze(compOptions);\n }\n\n get COMPONENT_NAME() {\n return this.$el.getAttribute('data-component');\n }\n\n /**\n *\n * constructor\n *\n * @param {Element} element\n */\n constructor(element) {\n super(element);\n this._componentElement = element;\n this._componentElement.setAttribute('data-component-init', 'true');\n this._checkMessages();\n }\n\n static convertType(option) {\n let optionReturn;\n switch (option) {\n case 'false':\n optionReturn = false;\n break;\n case 'true':\n optionReturn = true;\n break;\n case 'null':\n optionReturn = null;\n break;\n default:\n optionReturn = option;\n break;\n }\n\n return optionReturn;\n }\n\n static cleanOptionKey(key) {\n const str = key.replace('option', '');\n return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\n }\n\n /**\n *\n * $on\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n * @param {Array|String|Element} [elements = null]\n */\n $on(events, cb, element = this.$el, elements = null) {\n if (!element || !events || !cb) return;\n if (!elements) {\n Bean.on(element, events, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n } else {\n Bean.on(element, events, elements, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n }\n }\n\n /**\n *\n * $one\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n */\n $one(events, cb, element = this.$el) {\n Bean.one(element, events, cb);\n }\n\n /**\n *\n * $off\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $off(events, element = this.$el) {\n Bean.off(element, events);\n }\n\n /**\n *\n * $fire\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $fire(events, element = this.$el) {\n Bean.fire(element, events);\n }\n\n /**\n *\n * Activate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n */\n loading(container, message) {\n this._loading = true;\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.show, {\n container: container || document.body,\n message: message ?? null\n });\n }\n\n /**\n *\n * Deactivate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n * @param {Boolean} [error=false]\n * @param {String} [icon]\n */\n endLoading(container, message, error = false, icon) {\n this._loading = false;\n setTimeout(() => {\n if (!this._loading) {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.hide, {\n container: container || document.body,\n message,\n error,\n icon\n });\n }\n }, 400);\n }\n}\n"],"sourceRoot":""}