{"version":3,"sources":["webpack:///./src/client/default/js/constants/searchConstants.js","webpack:///./src/client/default/js/components/loadMoreComponent.js","webpack:///./src/client/default/js/base/baseComponent.js"],"names":["deepFreeze","SEARCH_ELEMENTS","LOAD_MORE","FILTERS","loadMoreComponent","_baseComponent","element","_this","_classCallCheck","_callSuper","_defineProperty","countTile","handleClick","infinityScroll","_inherits","_createClass","key","get","this","CUSTOM_MESSAGES","PROGRESSIVE_LOAD_PRODUCTS","updategrid","clickCta","value","_ref2","size","$el","click","name","url","arguments","length","undefined","window","location","href","replace","regex","RegExp","results","exec","decodeURIComponent","_this2","srule","getParameterByName","query","concat","$options","start","join","$on","e","loadMore","_this3","isLoadingEnded","document","querySelector","infinity","footer","classList","add","hash","indexOf","place","IntersectionObserver","entries","observer","isIntersecting","queque","disconnect","rootMargin","threshold","observe","isInfinity","remove","appPostMessage","action","EMIT","LOAD_MORE_EVENTS","clicked","SEARCH_CONSTANTS","TRACKING_EVENTS","update","eventCategory","eventAction","nProduct","extraTile","firstRegion","secondRegion","querySelectorAll","innerHTML","baseComponent","BaseComponent","_BaseGiaComponent","_componentElement","setAttribute","_checkMessages","compOptions","options","_objectSpread","dataset","Object","keys","filter","entry","includes","forEach","optionValue","cleanEntry","cleanOptionKey","JSON","parse","convertType","getAttribute","events","cb","elements","Bean","on","stopPropagation","one","off","fire","container","message","_loading","LOADER_EVENTS","show","body","error","icon","setTimeout","hide","option","optionReturn","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent"],"mappings":"wNAEeA,cAAW,CACxBC,gBAAiB,CACfC,UAAW,mBACXC,QAAS,oB,mSCH6C,IAErCC,EAAiB,SAAAC,GAYpC,SAAAD,EAAYE,GAAS,IAAAC,EAIG,OAJHC,IAAA,KAAAJ,GACnBG,EAAAE,EAAA,KAAAL,EAAA,CAAME,IAASI,IAAAH,EAAA,UAZR,GAaPA,EAAKI,YACLJ,EAAKK,cACLL,EAAKM,iBAAiBN,EACvB,OAAAO,IAAAV,EAAAC,GAAAU,IAAAX,EAAA,EAAAY,IAAA,WAAAC,IAfD,WACE,OAAAP,IAAA,GACGQ,KAAKC,gBAAgBC,0BAA0BC,WAAaH,KAAKI,YAErE,CAAAN,IAAA,YAAAC,IAED,WACE,MAAO,KACR,CAAAD,IAAA,WAAAO,MASD,SAAQC,GAAW,IAARC,EAAID,EAAJC,KACTP,KAAKO,KAAOA,EACZP,KAAKQ,IAAIC,UACV,CAAAX,IAAA,qBAAAO,MAED,SAAmBK,GAAkC,IAA5BC,EAAGC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGG,OAAOC,SAASC,KAE7CP,EAAOA,EAAKQ,QAAQ,UAAW,QAC/B,IAAIC,EAAQ,IAAIC,OAAO,OAASV,EAAO,qBACrCW,EAAUF,EAAMG,KAAKX,GACvB,OAAKU,EACAA,EAAQ,GACNE,mBAAmBF,EAAQ,GAAGH,QAAQ,MAAO,MAD5B,GADH,OAGtB,CAAApB,IAAA,cAAAO,MAED,WAAc,IAAAmB,EAAA,KACRC,EAAQzB,KAAK0B,mBAAmB,SAE9BC,EAAQ,GAAGC,OAAOH,EAAQ,SAAHG,OAAYH,GAAU,KAAM,SAAFG,OAAW5B,KAAK6B,SAASC,OAAK,MAAAF,OAAU5B,KAAK6B,SAAStB,OAAQwB,KAAK,KAC1H/B,KAAKgC,IAAI,kBAAkB,SAACC,GAC1BT,EAAKU,SAASP,QAEjB,CAAA7B,IAAA,iBAAAO,MAED,WAAiB,IAAA8B,EAAA,KACXC,EAAiBC,SAASC,cAAc,gBAc5C,GAAItC,KAAK6B,SAASU,SAAU,CAC1B,IAAIC,EAASH,SAASC,cAAc,UAChCE,GACFA,EAAOC,UAAUC,IAAI,WAGpBN,IAA2D,GAAzCrB,OAAOC,SAAS2B,KAAKC,QAAQ,UAAkB5C,KAAK6B,SAASU,UAAoC,cAAxBvC,KAAK6B,SAASgB,OAC7F,IAAIC,sBAjBE,SAACC,EAASC,GAC/B,GAAKD,EAAQ,GAAGE,iBACXd,EAAKe,OAAQ,CAChB,IAAIzB,EAAQU,EAAKT,mBAAmB,SAC9BC,EAAQ,GAAGC,OAAOH,EAAQ,SAAHG,OAAYH,GAAU,KAAM,SAAFG,OAAWO,EAAKN,SAASC,OAAK,MAAAF,OAAUO,EAAKN,SAAStB,OAAQwB,KAAK,KAC1HI,EAAKe,QAAS,EACdf,EAAKD,SAASP,GAAO,GACrBqB,EAASG,gBATK,CAAEC,WAAY,oBAAqBC,UAAW,CAAC,MAoBtDC,QAAQtD,KAAKQ,OAEzB,CAAAV,IAAA,WAAAO,MAED,SAASsB,EAAO4B,GACVA,GACFlB,SAASC,cAAc,QAAQG,UAAUe,OAAO,eAElDC,YAAe,CAAEC,OAAQ,uBACzB1D,KAAK2D,KAAK3D,KAAKC,gBAAgB2D,iBAAiBC,QAAS,CACvDxD,MAAOsB,EACPvC,QAAS0E,EAAiB/E,gBAAgBC,UAC1CuB,KAAMP,KAAKO,KACXgD,WAAYA,IAEa,aAAvBvD,KAAK6B,SAASgB,OAChB7C,KAAK2D,KAAK3D,KAAKC,gBAAgB8D,gBAAgBC,OAAQ,CACrDC,cAAe,YACfC,YAAa,yBAGlB,CAAApE,IAAA,YAAAO,MAED,WACE,IAAI8D,EAAW9B,SAASC,cAAc,sBACtC,GAAI6B,EAAU,CACZ,IAAIC,EAAY,EACZC,EAAchC,SAASC,cAAc,8BACrCgC,EAAejC,SAASC,cAAc,+BACxBD,SAASkC,iBAAiB,+BAE1CH,GAAwB/B,SAASkC,iBAAiB,6BAA6B1D,QAE7EwD,GAAeA,EAAY/B,cAAc,mBAC3C8B,GAAwB,GAEtBE,GAAgBA,EAAaC,iBAAiB,mBAChDH,GAAwBE,EAAaC,iBAAiB,iBAAiB1D,QAEzEsD,EAASK,WAAanC,SAASC,cAAc,sBAAsBkC,UAAYJ,OAzG/C,CAASK,M,kpBCEG,IAE7BC,EAAa,SAAAC,GAmChC,SAAAD,EAAYtF,GAAS,IAAAC,EAIG,OAJHC,IAAA,KAAAoF,IACnBrF,EAAAE,EAAA,KAAAmF,EAAA,CAAMtF,KACDwF,kBAAoBxF,EACzBC,EAAKuF,kBAAkBC,aAAa,sBAAuB,QAC3DxF,EAAKyF,iBAAiBzF,EACvB,OAAAO,IAAA8E,EAAAC,GAAA9E,IAAA6E,EAAA,EAAA5E,IAAA,MAAAC,IApCD,WACE,OAAmCC,KAAK4E,oBACzC,CAAA9E,IAAA,WAAAC,IAED,WACE,IAAMgF,EAAc,GACdC,E,iWAAOC,CAAA,GAAQjF,KAAKQ,IAAI0E,SAY9B,OAXuBC,OAAOC,KAAKJ,GAASK,QAAO,SAACC,GAAK,OAAKA,EAAMC,SAAS,aAC9DC,SAAQ,SAACF,GACtB,IACIG,EADEC,EAAahB,EAAciB,eAAeL,GAG9CG,EADET,EAAQM,GAAOC,SAAS,MAAQP,EAAQM,GAAOC,SAAS,KAC5CK,KAAKC,MAAMb,EAAQM,GAAOpE,QAAQ,KAAM,MAExCwD,EAAcoB,YAAYd,EAAQM,IAElDP,EAAYW,GAAcD,KAErB3G,YAAWiG,KACnB,CAAAjF,IAAA,iBAAAC,IAED,WACE,OAAOC,KAAKQ,IAAIuF,aAAa,oBAC9B,CAAAjG,IAAA,MAAAO,MAiDD,SAAI2F,EAAQC,GAAyC,IAArC7G,EAAOwB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGZ,KAAKQ,IAAK0F,EAAQtF,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KACxCxB,GAAY4G,GAAWC,IACvBC,EAMHC,IAAKC,GAAGhH,EAAS4G,EAAQE,GAAU,SAACjE,GAC9BA,GAAGA,EAAEoE,kBACTJ,EAAGhE,MAPLkE,IAAKC,GAAGhH,EAAS4G,GAAQ,SAAC/D,GACpBA,GAAGA,EAAEoE,kBACTJ,EAAGhE,SAUT,CAAAnC,IAAA,OAAAO,MAQA,SAAK2F,EAAQC,GAAwB,IAApB7G,EAAOwB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGZ,KAAKQ,IAC9B2F,IAAKG,IAAIlH,EAAS4G,EAAQC,KAG5B,CAAAnG,IAAA,OAAAO,MAOA,SAAK2F,GAA4B,IAApB5G,EAAOwB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGZ,KAAKQ,IAC1B2F,IAAKI,IAAInH,EAAS4G,KAGpB,CAAAlG,IAAA,QAAAO,MAOA,SAAM2F,GAA4B,IAApB5G,EAAOwB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGZ,KAAKQ,IAC3B2F,IAAKK,KAAKpH,EAAS4G,KAGrB,CAAAlG,IAAA,UAAAO,MAOA,SAAQoG,EAAWC,GACjB1G,KAAK2G,UAAW,EAChB3G,KAAK2D,KAAK3D,KAAKC,gBAAgB2G,cAAcC,KAAM,CACjDJ,UAAWA,GAAapE,SAASyE,KACjCJ,QAASA,UAAW,SAIxB,CAAA5G,IAAA,aAAAO,MASA,SAAWoG,EAAWC,GAA8B,IAAAlF,EAAA,KAArBuF,EAAKnG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAAUoG,EAAIpG,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAChDd,KAAK2G,UAAW,EAChBM,YAAW,WACJzF,EAAKmF,UACRnF,EAAKmC,KAAKnC,EAAKvB,gBAAgB2G,cAAcM,KAAM,CACjDT,UAAWA,GAAapE,SAASyE,KACjCJ,UACAK,QACAC,WAGH,QACJ,EAAAlH,IAAA,cAAAO,MAvHD,SAAmB8G,GACjB,IAAIC,EACJ,OAAQD,GACN,IAAK,QACHC,GAAe,EACf,MACF,IAAK,OACHA,GAAe,EACf,MACF,IAAK,OACHA,EAAe,KACf,MACF,QACEA,EAAeD,EAInB,OAAOC,IACR,CAAAtH,IAAA,iBAAAO,MAED,SAAsBP,GACpB,IAAMuH,EAAMvH,EAAIoB,QAAQ,SAAU,IAClC,MAAO,GAAPU,OAAUyF,EAAIC,OAAO,GAAGC,qBAAmB3F,OAAGyF,EAAIG,MAAM,QAhE1B,C,MAASC","file":"js/component-loadMoreComponent-js.chunks.js","sourcesContent":["import deepFreeze from '../utilities/freeze';\n\nexport default deepFreeze({\n SEARCH_ELEMENTS: {\n LOAD_MORE: 'search:load:more',\n FILTERS: 'search:filters'\n }\n});\n","import baseComponent from '../base/baseComponent';\nimport SEARCH_CONSTANTS from '../constants/searchConstants';\nimport { appPostMessage } from '../utilities/postMessage';\n\nexport default class loadMoreComponent extends baseComponent {\n queque = false;\n get Messages() {\n return {\n [this.CUSTOM_MESSAGES.PROGRESSIVE_LOAD_PRODUCTS.updategrid]: this.clickCta\n };\n }\n\n get SELECTORS() {\n return {};\n }\n\n constructor(element) {\n super(element);\n this.countTile();\n this.handleClick();\n this.infinityScroll();\n }\n\n clickCta({ size }) {\n this.size = size;\n this.$el.click();\n }\n\n getParameterByName(name, url = window.location.href) {\n // eslint-disable-next-line no-useless-escape\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return '';\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n handleClick() {\n let srule = this.getParameterByName('srule');\n\n const query = [].concat(srule ? `srule=${srule}` : null, `start=${this.$options.start}`, `sz=${this.$options.size}`).join('&');\n this.$on('click.LoadMore', (e) => {\n this.loadMore(query);\n });\n }\n\n infinityScroll() {\n let isLoadingEnded = document.querySelector('.js-infinity');\n\n let observerOpt = { rootMargin: '0px 0px 400px 0px', threshold: [0.1] };\n\n let observerCallback = (entries, observer) => {\n if (!entries[0].isIntersecting) return;\n if (!this.queque) {\n let srule = this.getParameterByName('srule');\n const query = [].concat(srule ? `srule=${srule}` : null, `start=${this.$options.start}`, `sz=${this.$options.size}`).join('&');\n this.queque = true;\n this.loadMore(query, true);\n observer.disconnect();\n }\n };\n if (this.$options.infinity) {\n let footer = document.querySelector('footer');\n if (footer) {\n footer.classList.add('d-none');\n }\n }\n if ((isLoadingEnded || window.location.hash.indexOf('size') == -1) && this.$options.infinity && this.$options.place !== 'Volantini') {\n let observer = new IntersectionObserver(observerCallback, observerOpt);\n observer.observe(this.$el);\n }\n }\n\n loadMore(query, isInfinity) {\n if (isInfinity) {\n document.querySelector('body').classList.remove('js-infinity');\n }\n appPostMessage({ action: 'prodottiSuccessivi' });\n this.EMIT(this.CUSTOM_MESSAGES.LOAD_MORE_EVENTS.clicked, {\n value: query,\n element: SEARCH_CONSTANTS.SEARCH_ELEMENTS.LOAD_MORE,\n size: this.size,\n isInfinity: isInfinity\n });\n if (this.$options.place == 'Volantini') {\n this.EMIT(this.CUSTOM_MESSAGES.TRACKING_EVENTS.update, {\n eventCategory: 'Volantini',\n eventAction: 'Prodotti Succesivi'\n });\n }\n }\n\n countTile() {\n var nProduct = document.querySelector('.number-of-product');\n if (nProduct) {\n var extraTile = 0;\n var firstRegion = document.querySelector('.experience-firstComponent');\n var secondRegion = document.querySelector('.experience-secondComponent');\n var highlighted = document.querySelectorAll('.content-item-highlighted');\n if (highlighted) {\n extraTile = extraTile - document.querySelectorAll('.content-item-highlighted').length;\n }\n if (firstRegion && firstRegion.querySelector('.product.tile')) {\n extraTile = extraTile + 1;\n }\n if (secondRegion && secondRegion.querySelectorAll('.product.tile')) {\n extraTile = extraTile + secondRegion.querySelectorAll('.product.tile').length;\n }\n nProduct.innerHTML = +document.querySelector('.number-of-product').innerHTML + extraTile;\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":""}