{"version":3,"sources":["webpack:///./assets/javascripts/modules/utils/FocusableElementUtils.js","webpack:///./node_modules/bootstrap/js/dist lazy ^\\.\\/.*\\.js$ namespace object","webpack:///./node_modules/flatpickr/dist/l10n lazy ^\\.\\/.*\\.js$ namespace object","webpack:///./assets/javascripts/modules/components/PerfectFitComponent.js","webpack:///./assets/javascripts/modules/utils/DependencyInjector.js","webpack:///./assets/javascripts/modules/abstracts/Component.js"],"names":["$","__webpack_require__","d","__webpack_exports__","getFirstFocusable","toggleTabIndex","FOCUSABLE_ELEMENTS","parent","querySelector","join","makeTabbable","el","hasAttribute","setAttribute","getAttribute","removeAttribute","makeUntabbable","classList","contains","add","focusable","els","Array","prototype","slice","call","find","getFocusableElements","forEach","map","./alert.js","./button.js","./carousel.js","./collapse.js","./dropdown.js","./index.js","./modal.js","./popover.js","./scrollspy.js","./tab.js","./toast.js","./tooltip.js","./util.js","webpackAsyncContext","req","ids","Promise","all","e","then","id","t","resolve","Error","code","keys","Object","module","exports","./ar.js","./at.js","./be.js","./bg.js","./bn.js","./cat.js","./cs.js","./cy.js","./da.js","./de.js","./default.js","./eo.js","./es.js","./et.js","./fa.js","./fi.js","./fr.js","./gr.js","./he.js","./hi.js","./hr.js","./hu.js","./id.js","./it.js","./ja.js","./km.js","./ko.js","./kz.js","./lt.js","./lv.js","./mk.js","./mn.js","./ms.js","./my.js","./nl.js","./no.js","./pa.js","./pl.js","./pt.js","./ro.js","./ru.js","./si.js","./sk.js","./sl.js","./sq.js","./sr.js","./sv.js","./th.js","./tr.js","./uk.js","./vn.js","./zh.js","PerfectFitComponent","_classCallCheck","this","_this2","_possibleConstructorReturn","__proto__","getPrototypeOf","main","SELECTORS","imgCarousel","imageCarousel","hoverTimeout","clickTimeout","previousSlide","clickable","clicked","Component","wrapperCarousel","pairings","imagePreview","$el","carousels","carouselIndex","currentSlide","type","_this3","pairing","findPairing","length","log","clearTimeout","cloned","attr","data","removeClass","remove","clone","addClass","prependTo","css","stop","$imagePreview","fadeOut","updateImagePreview","fadeIn","setTimeout","warn","toggleOtherSlider","startImage","percentHeight","height","visible","undefined","text","enable","each","index","i","slide","removeAttr","_this4","_this5","_this","on","console","prewVisible","imgVisible","top","isBottom","offsetY","topImage","element","$slides","currentTarget","is","prev","handlePair","hasClass","toggleHover","slick","src","srcset","checkPairing","event","nextSlide","_this6","document","body","bindEvents","loadedDependency","existingDependency","name","saveDependency","lib","reject","DependencyInjector","logStr","arguments","myName","constructor","debug","componentName","thenPromise","catchPromise","catch","bind","res","err","error","locale","widgetName","url","script","createElement","addEventListener","appendChild","stack","Component_classCallCheck","moduleLoader","$customEvents","CustomEvents","$matchMedia","match","$on","$emit","emit","$off","off","$one","one","$getFirstFocusable"],"mappings":"6FAAA,SAAAA,GAAAC,EAAAC,EAAAC,EAAA,sBAAAC,IAAAH,EAAAC,EAAAC,EAAA,sBAAAE,IAAA,IAAMC,GAAsB,UAAW,6CAA8C,yBAA0B,2BAA4B,yBAA0B,mCAExJF,EAAoB,SAACG,GAChC,OAAOA,EAAOC,cAAcF,EAAmBG,KAAK,OAShDC,EAAe,SAACC,GAChBA,EAAGC,aAAa,iBAClBD,EAAGE,aAAa,WAAYF,EAAGG,aAAa,kBAE5CH,EAAGI,gBAAgB,aAIjBC,EAAiB,SAACL,GAClBA,EAAGC,aAAa,cAAgBD,EAAGM,UAAUC,SAAS,aACxDP,EAAGE,aAAa,gBAAiBF,EAAGG,aAAa,aAEnDH,EAAGM,UAAUE,IAAI,YACjBR,EAAGE,aAAa,YAAa,IAGlBR,EAAiB,SAACE,EAAQa,GACrC,IAAIC,EAvB8B,SAACV,GACnC,OAAOW,MAAMC,UAAUC,MAAMC,KAC3BzB,EAAEW,GAAIe,KAAKpB,EAAmBG,KAAK,OAqB3BkB,CAAqBpB,GAE/Ba,EACIC,EAAIO,QAAQlB,GACZW,EAAIO,QAAQZ,4CCjClB,IAAAa,GACAC,cACA,IACA,KAEAC,eACA,IACA,KAEAC,iBACA,IACA,KAEAC,iBACA,IACA,KAEAC,iBACA,IACA,EACA,KAEAC,cACA,IACA,KAEAC,cACA,IACA,KAEAC,gBACA,IACA,EACA,IACA,KAEAC,kBACA,IACA,KAEAC,YACA,IACA,KAEAC,cACA,IACA,KAEAC,gBACA,IACA,EACA,KAEAC,aACA,IACA,MAGA,SAAAC,EAAAC,GACA,IAAAC,EAAAhB,EAAAe,GACA,OAAAC,EAOAC,QAAAC,IAAAF,EAAArB,MAAA,GAAAK,IAAA5B,EAAA+C,IAAAC,KAAA,WACA,IAAAC,EAAAL,EAAA,GACA,OAAA5C,EAAAkD,EAAAD,EAAA,KARAJ,QAAAM,UAAAH,KAAA,WACA,IAAAD,EAAA,IAAAK,MAAA,uBAAAT,EAAA,KAEA,MADAI,EAAAM,KAAA,mBACAN,IAQAL,EAAAY,KAAA,WACA,OAAAC,OAAAD,KAAA1B,IAEAc,EAAAO,GAAA,IACAO,EAAAC,QAAAf,uBC5EA,IAAAd,GACA8B,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,YACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,gBACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEA9C,cACA,IACA,KAEA+C,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,MAGA,SAAAnE,EAAAC,GACA,IAAAC,EAAAhB,EAAAe,GACA,OAAAC,EAOA5C,EAAA+C,EAAAH,EAAA,IAAAI,KAAA,WACA,IAAAC,EAAAL,EAAA,GACA,OAAA5C,EAAAkD,EAAAD,EAAA,KARAJ,QAAAM,UAAAH,KAAA,WACA,IAAAD,EAAA,IAAAK,MAAA,uBAAAT,EAAA,KAEA,MADAI,EAAAM,KAAA,mBACAN,IAQAL,EAAAY,KAAA,WACA,OAAAC,OAAAD,KAAA1B,IAEAc,EAAAO,GAAA,IACAO,EAAAC,QAAAf,4TCtOqBoE,cAYnB,SAAAA,iGAAcC,CAAAC,KAAAF,GAAA,IAAAG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","file":"components-PerfectFitComponent.chunks.js","sourcesContent":["const FOCUSABLE_ELEMENTS = ['a[href]', 'input:not([disabled]):not([type=\"hidden\"])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', '[tabindex]:not([tabindex^=\"-\"])'];\n\nexport const getFirstFocusable = (parent) => {\n return parent.querySelector(FOCUSABLE_ELEMENTS.join(','));\n};\n\nexport const getFocusableElements = (el) => {\n return Array.prototype.slice.call(\n $(el).find(FOCUSABLE_ELEMENTS.join(','))\n )\n};\n\nconst makeTabbable = (el) => {\n if (el.hasAttribute('data-tabindex')) {\n el.setAttribute('tabindex', el.getAttribute('data-tabindex'));\n } else {\n el.removeAttribute('tabindex');\n }\n};\n\nconst makeUntabbable = (el) => {\n if (el.hasAttribute('tabindex') && !el.classList.contains('untabbed')) {\n el.setAttribute('data-tabindex', el.getAttribute('tabindex'));\n }\n el.classList.add('untabbed');\n el.setAttribute('tabindex', -1);\n};\n\nexport const toggleTabIndex = (parent, focusable) => {\n var els = getFocusableElements(parent)\n \n focusable\n ? els.forEach(makeTabbable)\n : els.forEach(makeUntabbable)\n};","var map = {\n\t\"./alert.js\": [\n\t\t322,\n\t\t186\n\t],\n\t\"./button.js\": [\n\t\t323,\n\t\t187\n\t],\n\t\"./carousel.js\": [\n\t\t324,\n\t\t188\n\t],\n\t\"./collapse.js\": [\n\t\t325,\n\t\t189\n\t],\n\t\"./dropdown.js\": [\n\t\t326,\n\t\t2,\n\t\t190\n\t],\n\t\"./index.js\": [\n\t\t327,\n\t\t191\n\t],\n\t\"./modal.js\": [\n\t\t328,\n\t\t192\n\t],\n\t\"./popover.js\": [\n\t\t329,\n\t\t2,\n\t\t171,\n\t\t193\n\t],\n\t\"./scrollspy.js\": [\n\t\t330,\n\t\t194\n\t],\n\t\"./tab.js\": [\n\t\t331,\n\t\t195\n\t],\n\t\"./toast.js\": [\n\t\t332,\n\t\t196\n\t],\n\t\"./tooltip.js\": [\n\t\t321,\n\t\t2,\n\t\t171\n\t],\n\t\"./util.js\": [\n\t\t320,\n\t\t197\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 291;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ar.js\": [\n\t\t333,\n\t\t198\n\t],\n\t\"./at.js\": [\n\t\t334,\n\t\t199\n\t],\n\t\"./be.js\": [\n\t\t335,\n\t\t200\n\t],\n\t\"./bg.js\": [\n\t\t336,\n\t\t201\n\t],\n\t\"./bn.js\": [\n\t\t337,\n\t\t202\n\t],\n\t\"./cat.js\": [\n\t\t338,\n\t\t203\n\t],\n\t\"./cs.js\": [\n\t\t339,\n\t\t204\n\t],\n\t\"./cy.js\": [\n\t\t340,\n\t\t205\n\t],\n\t\"./da.js\": [\n\t\t341,\n\t\t206\n\t],\n\t\"./de.js\": [\n\t\t342,\n\t\t207\n\t],\n\t\"./default.js\": [\n\t\t343,\n\t\t208\n\t],\n\t\"./eo.js\": [\n\t\t344,\n\t\t209\n\t],\n\t\"./es.js\": [\n\t\t345,\n\t\t210\n\t],\n\t\"./et.js\": [\n\t\t346,\n\t\t211\n\t],\n\t\"./fa.js\": [\n\t\t347,\n\t\t212\n\t],\n\t\"./fi.js\": [\n\t\t348,\n\t\t213\n\t],\n\t\"./fr.js\": [\n\t\t349,\n\t\t214\n\t],\n\t\"./gr.js\": [\n\t\t350,\n\t\t215\n\t],\n\t\"./he.js\": [\n\t\t351,\n\t\t216\n\t],\n\t\"./hi.js\": [\n\t\t352,\n\t\t217\n\t],\n\t\"./hr.js\": [\n\t\t353,\n\t\t218\n\t],\n\t\"./hu.js\": [\n\t\t354,\n\t\t219\n\t],\n\t\"./id.js\": [\n\t\t355,\n\t\t220\n\t],\n\t\"./index.js\": [\n\t\t356,\n\t\t257\n\t],\n\t\"./it.js\": [\n\t\t357,\n\t\t221\n\t],\n\t\"./ja.js\": [\n\t\t358,\n\t\t222\n\t],\n\t\"./km.js\": [\n\t\t359,\n\t\t223\n\t],\n\t\"./ko.js\": [\n\t\t360,\n\t\t224\n\t],\n\t\"./kz.js\": [\n\t\t361,\n\t\t225\n\t],\n\t\"./lt.js\": [\n\t\t362,\n\t\t226\n\t],\n\t\"./lv.js\": [\n\t\t363,\n\t\t227\n\t],\n\t\"./mk.js\": [\n\t\t364,\n\t\t228\n\t],\n\t\"./mn.js\": [\n\t\t365,\n\t\t229\n\t],\n\t\"./ms.js\": [\n\t\t366,\n\t\t230\n\t],\n\t\"./my.js\": [\n\t\t367,\n\t\t231\n\t],\n\t\"./nl.js\": [\n\t\t368,\n\t\t232\n\t],\n\t\"./no.js\": [\n\t\t369,\n\t\t233\n\t],\n\t\"./pa.js\": [\n\t\t370,\n\t\t234\n\t],\n\t\"./pl.js\": [\n\t\t371,\n\t\t235\n\t],\n\t\"./pt.js\": [\n\t\t372,\n\t\t236\n\t],\n\t\"./ro.js\": [\n\t\t373,\n\t\t237\n\t],\n\t\"./ru.js\": [\n\t\t374,\n\t\t238\n\t],\n\t\"./si.js\": [\n\t\t375,\n\t\t239\n\t],\n\t\"./sk.js\": [\n\t\t376,\n\t\t240\n\t],\n\t\"./sl.js\": [\n\t\t377,\n\t\t241\n\t],\n\t\"./sq.js\": [\n\t\t378,\n\t\t242\n\t],\n\t\"./sr.js\": [\n\t\t379,\n\t\t243\n\t],\n\t\"./sv.js\": [\n\t\t380,\n\t\t244\n\t],\n\t\"./th.js\": [\n\t\t381,\n\t\t245\n\t],\n\t\"./tr.js\": [\n\t\t382,\n\t\t246\n\t],\n\t\"./uk.js\": [\n\t\t383,\n\t\t247\n\t],\n\t\"./vn.js\": [\n\t\t384,\n\t\t248\n\t],\n\t\"./zh.js\": [\n\t\t385,\n\t\t249\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 292;\nmodule.exports = webpackAsyncContext;","import Component from '../abstracts/Component';\n\nexport default class PerfectFitComponent extends Component {\n\n get SELECTORS() {\n return {\n main: '.c-perfect-fit',\n wrapperCarousel: '.wrapper-carousel .carousel',\n pairings: '.wrapper-pairing',\n imageCarousel: '.image-carousel',\n imagePreview: '.image-preview'\n }\n }\n\n constructor() {\n super()\n\n this.main = $(this.SELECTORS.main);\n this.imgCarousel = $(this.SELECTORS.imageCarousel);\n this.hoverTimeout = null;\n this.clickTimeout = null;\n this.previousSlide = null;\n this.clickable = false;\n this.clicked = false;\n }\n\n handlePair($el, carousels, carouselIndex, currentSlide, type) {\n let pairing = this.findPairing(carousels, carouselIndex, currentSlide);\n\n if (pairing.length > 0) {\n this.log('found pairing');\n this.clickable = true;\n clearTimeout(this.hoverTimeout);\n\n let cloned = this.imgCarousel.find('.cloned');\n //is cloned different from previous image\n if (cloned.length == 0 ||\n cloned.find('img').attr('src') != pairing.data('image')) {\n\n this.log('different from previous one');\n\n this.imgCarousel.removeClass('clicked');\n\n this.imgCarousel.find('picture.cloned').remove();\n\n const picture = this.imgCarousel.find('picture');\n picture.clone().addClass('cloned').prependTo(this.imgCarousel);\n cloned = this.imgCarousel.find('.cloned');\n\n // modifico gli attributi dell'immagine\n cloned.find('img').attr('src', pairing.data('image'));\n cloned.find('img').css('top', 0);\n cloned.find('source').attr('srcset', pairing.data('imageSmall'));\n this.main.find('.button-primary').attr('href', pairing.data('link'));\n\n this.imgCarousel.addClass('duplicated');\n } else {\n this.log(\"pairing not found\");\n $el.stop();\n }\n\n // update images for image preview\n if (type == \"click\") {\n const $imagePreview = $el.find(this.SELECTORS.imagePreview);\n $imagePreview.fadeOut(300, () => {\n $imagePreview.find('img').attr('src', pairing.data('image'));\n $imagePreview.find('source').attr('srcset', pairing.data('imageSmall'));\n this.updateImagePreview($imagePreview, $el);\n $imagePreview.fadeIn(300);\n });\n }\n\n this.hoverTimeout = setTimeout(() => {\n switch (type) {\n case \"hover\":\n this.imgCarousel.addClass('animate');\n this.imgCarousel.addClass('hovered');\n currentSlide.addClass('hovered');\n break;\n\n case \"click\":\n this.imgCarousel.addClass('clicked');\n this.clickTimeout = setTimeout(() => {\n this.imgCarousel.find('picture:not(.cloned)').remove();\n this.imgCarousel.find('picture.cloned').removeClass('cloned');\n this.imgCarousel.removeClass('duplicated');\n this.imgCarousel.removeClass(\"clicked\");\n this.clicked = false;\n }, 550);\n break;\n\n default:\n break;\n }\n }, 50);\n\n } else {\n this.warn(\"pairing not found\");\n $el.stop();\n }\n\n if (type == 'click') {\n setTimeout(() => {\n this.toggleOtherSlider(carousels, carouselIndex, true)\n }, 800);\n }\n }\n\n updateImagePreview($imagePreview, $el) {\n const startImage = $el.find(`${this.SELECTORS.imageCarousel} > picture img`);\n const percentHeight = ($el.height() * 100) / startImage.height();\n const visible = $imagePreview.find('.section-visible');\n visible.css('top', 0);\n if (percentHeight > 99) {\n visible.css('height', '100%');\n } else {\n visible.css('height', `${percentHeight}%`);\n }\n }\n\n findPairing(carousels, carouselIndex, currentSlide) {\n let pairing = undefined;\n\n switch (carouselIndex) {\n case 0:\n pairing = $(this.SELECTORS.pairings).find(`[data-text-style=\"${currentSlide.text()}\"][data-text-occasion=\"${$(carousels[1]).find('.slick-current').text()}\"]`);\n break;\n case 1:\n pairing = $(this.SELECTORS.pairings).find(`[data-text-occasion=\"${currentSlide.text()}\"][data-text-style=\"${$(carousels[0]).find('.slick-current').text()}\"]`);\n break;\n\n default:\n break;\n }\n\n return pairing;\n }\n\n checkPairing(carousels, carouselIndex, currentSlide) {\n\n if (typeof currentSlide === 'undefined' || currentSlide == null) {\n return false;\n }\n\n let pairing = this.findPairing(carousels, carouselIndex, currentSlide);\n\n let cloned = this.imgCarousel.find('.cloned');\n\n return ((cloned.length == 0) ||\n ((cloned.find('img').attr('src') != pairing.data('image')) &&\n (cloned.find('source').attr('srcset') != pairing.data('imageSmall')) &&\n (this.main.find('.button-primary').attr('href') != pairing.data('link'))));\n }\n\n toggleOtherSlider(carousels, carouselIndex, enable) {\n carousels.each((index, el) => {\n if (index != carouselIndex) {\n $(el).find('.slick-arrow').each((i, slide) => {\n if (enable == true) {\n $(slide).removeAttr('disabled');\n $(slide).css('pointer-events', 'auto')\n } else {\n $(slide).attr('disabled', 'disabled');\n $(slide).css('pointer-events', 'none');\n }\n });\n }\n });\n }\n\n toggleHover(carousels, enable) {\n carousels.each((index, el) => {\n $(el).find('.slick-slide').each((i, slide) => {\n if (enable == true) {\n $(slide).css('pointer-events', 'auto');\n this.clicked = false;\n } else {\n $(slide).css('pointer-events', 'none');\n }\n });\n });\n }\n\n bindEvents(el) {\n\n const $el = $(el),\n _this = this,\n $imagePreview = $el.find(this.SELECTORS.imagePreview);\n\n this.updateImagePreview($imagePreview, $el);\n\n $imagePreview.find('img').on('click', (e) => {\n console.log('click image preview');\n const prewVisible = $imagePreview.find('.section-visible');\n const imgVisible = $el.find(`${_this.SELECTORS.imageCarousel} > picture img`);\n let top = null;\n // for background image black line\n let isBottom = false;\n if (e.offsetY <= prewVisible.height() / 2) {\n top = 0;\n } else if (e.offsetY > ($imagePreview.height() - (prewVisible.height() / 2))) {\n top = $imagePreview.height() - prewVisible.height() - 1;\n isBottom = true;\n } else {\n top = e.offsetY - (prewVisible.height() / 2);\n }\n\n prewVisible.css('top', top);\n\n let topImage = (imgVisible.height() * top) / $imagePreview.height();\n if (isBottom) {\n imgVisible.css('top', -(imgVisible.height() - $el.height()))\n } else {\n imgVisible.css('top', -topImage)\n }\n\n });\n\n const carousels = $el.find(this.SELECTORS.wrapperCarousel);\n\n carousels.each((index, element) => {\n $(element).on(\"init\", () => {\n\n const $slides = $(element).find('.slick-slide');\n\n // mouseover on previous slide\n $slides.on(\"mouseover\", (e) => {\n // controllo che la slide in hover sia quella precedente all'attiva\n if ($(e.currentTarget).is($(element).find('.slick-current').prev()) && !_this.clicked) {\n _this.log(`hover ${index == 1 ? \"occasion\" : \"style\"} slide`);\n _this.handlePair($el, carousels, index, $(e.currentTarget), \"hover\");\n }\n });\n\n // mouseleave on previous slide\n $slides.on(\"mouseleave\", (e) => {\n if ($(e.currentTarget).is($(element).find('.slick-current').prev()) && !_this.clicked) {\n clearTimeout(_this.hoverTimeout);\n _this.clickable = false;\n _this.imgCarousel.removeClass(\"hovered\");\n $(e.currentTarget).removeClass(\"hovered\");\n _this.hoverTimeout = setTimeout(() => {\n _this.imgCarousel.removeClass(\"animate\");\n _this.imgCarousel.removeClass(\"duplicated\");\n _this.imgCarousel.find(\"picture.cloned\").remove();\n }, 300);\n }\n });\n\n // click on previous slide\n $slides.on(\"click\", (e) => {\n if ($(e.currentTarget).is($(element).find('.slick-current').prev()) && _this.clickable && $(e.currentTarget).hasClass('hovered')) {\n _this.clickable = false;\n _this.toggleHover(carousels, false);\n _this.imgCarousel.addClass(\"clicked\");\n $(e.currentTarget).removeClass(\"hovered\");\n\n // avanzo il carosello\n $(element).slick('slickPrev');\n\n _this.hoverTimeout = setTimeout(() => {\n _this.imgCarousel.removeClass(\"animate hovered\");\n _this.imgCarousel.find('picture:not(.cloned)').remove();\n _this.imgCarousel.find('picture.cloned').removeClass('cloned');\n _this.imgCarousel.removeClass('duplicated');\n _this.imgCarousel.removeClass(\"clicked\");\n }, 600);\n\n let src = _this.imgCarousel.find('picture img').attr('src'),\n srcset = _this.imgCarousel.find('picture source').attr('srcset');\n\n // update images for image preview\n const $imagePreview = $el.find(this.SELECTORS.imagePreview);\n $imagePreview.fadeOut(300, () => {\n $imagePreview.find('img').attr('src', src);\n $imagePreview.find('source').attr('srcset', srcset);\n this.updateImagePreview($imagePreview, $el);\n $imagePreview.fadeIn(300);\n });\n\n setTimeout(() => {\n _this.toggleHover(carousels, true);\n }, 650);\n }\n });\n\n // handle mousedown on prev arrow\n $(element).find('.slick-prev').on('mousedown', (e) => {\n _this.toggleOtherSlider(carousels, index, false);\n if (_this.previousSlide == null || _this.checkPairing(carousels, index, _this.previousSlide)) {\n _this.log(\"click arrow\");\n _this.previousSlide = $(element).find('.slick-current').prev();\n }\n });\n\n //handle before change slide on arrow click\n $(element).on('beforeChange', function (event, slick, currentSlide, nextSlide) {\n if (_this.checkPairing(carousels, index, _this.previousSlide)) {\n _this.log('beforechange ho cliccato next');\n _this.clicked = true;\n _this.handlePair($el, carousels, index, _this.previousSlide, \"click\");\n } else {\n setTimeout(() => {\n _this.toggleOtherSlider(carousels, index, true)\n }, 600);\n }\n _this.previousSlide = null;\n });\n })\n });\n }\n\n render() {\n\n if ($(document.body).hasClass('editmode')) return;\n\n if (this.main.length > 0) {\n this.log('binding events for perfect fit component');\n this.main.each((index, element) => {\n this.bindEvents(element);\n });\n }\n }\n}\n","const loadedDependency = {};\n\nconst existingDependency = (name) => {\n return (name in loadedDependency) ? loadedDependency[name] : false;\n};\n\nconst saveDependency = (name, lib) => {\n return new Promise((resolve, reject) => {\n try {\n if (!existingDependency(name)) {\n loadedDependency[name] = lib;\n resolve(false);\n } else {\n resolve(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n};\n\n\n\n/**\n * This utility class is injected in all components that extends Component\n * and is used to lazy load third-part libraries\n */\nexport default class DependencyInjector {\n static get CUSTOM_STYLES() {\n return '../../../stylesheets';\n }\n\n static defaultCatchPromise(error) {\n console.error(\"Failed to inject dependency\", error.stack);\n }\n\n /**\n * Log utility\n * @param logStr\n */\n log(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.debug(`[${myName}] ${logStr}`);\n }\n }\n\n\n /**\n * Load a single bootstrap component from library\n * The SCSS file shoul be created due to the impossibility to import from bootstrap package\n * @param thenPromise\n * @param catchPromise\n */\n loadBootstrapJsComponentAndExecute(componentName, thenPromise, catchPromise) {\n this.log(`Loading Bootstrap ${componentName}`);\n\n import(/* webpackChunkName: `boostrap-js` */ `bootstrap/js/dist/${componentName}.js`).then(thenPromise).catch(catchPromise);\n }\n\n\n loadAos(thenPromise, catchPromise) {\n this.log('Loading aos');\n\n import(/* webpackChunkName: `aos` */ 'aos/dist/aos.css').then(\n () => {\n import(/* webpackChunkName: `aos` */ 'aos').then(thenPromise).catch(catchPromise);\n }).catch(catchPromise);\n }\n\n\n loadModalAndExecute(thenPromise, catchPromise) {\n this.log('Loading Modal');\n\n import(/* webpackChunkName: `vex` */ 'vex-js/dist/js/vex.js').then(thenPromise).catch(catchPromise);\n }\n\n loadCarouselAndExecute(thenPromise, catchPromise) {\n this.log('Loading Slick Carousel');\n if (existingDependency('carousel')) return thenPromise(existingDependency('carousel'));\n\n import(/* webpackChunkName: `slick` */ 'slick-carousel/slick/slick.scss').then( () => {\n import(/* webpackChunkName: `slick` */ \"slick-carousel/slick/slick-theme.scss\").then(() => {\n import(/* webpackChunkName: `slick` */ 'slick-carousel/slick/slick.js').then((res) => {\n saveDependency('carousel', res);\n thenPromise(res);\n }).catch(catchPromise);\n }).catch(err => {\n console.error('Failed slick css import')\n }); // js library\n }).catch(err => {\n console.error('Failed slick css theme')\n });\n\n }\n\n loadStickyAndExecute(thenPromise, catchPromise) {\n this.log('Loading stickybits');\n import(/* webpackChunkName: `stickybits` */ 'stickybits').then(thenPromise).catch(catchPromise);\n }\n\n loadSelect2(thenPromise, catchPromise) {\n this.log('Loading Select2');\n if (existingDependency('select2')) return thenPromise(existingDependency('carousel'));\n\n import(/* webpackChunkName: `flatpickr` */ 'select2/src/scss/core.scss').then(\n () => {\n import(/* webpackChunkName: `selectize` */ 'select2/dist/js/select2.js').then((res) => {\n saveDependency('select2', res);\n thenPromise(res);\n }).catch(catchPromise);\n }).catch(catchPromise);\n }\n\n loadFlatpickrLocale(locale, thenPromise, catchPromise) {\n import(/* webpackChunkName: `flatpickr-locale` */ `flatpickr/dist/l10n/${locale}.js`).then(thenPromise).catch(catchPromise)\n }\n\n loadFlatpickr(thenPromise, catchPromise) {\n this.log('Loading Flatpickr');\n\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/src/style/flatpickr.styl').then(\n () => {\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/src/style/themes/airbnb.styl');\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/dist/flatpickr.js').then(thenPromise).catch(catchPromise); // js library\n }).catch(catchPromise);\n }\n\n\n loadMasonry(thenPromise, catchPromise) {\n this.log('Loading Masonry');\n\n import(/* webpackChunkName: `masonry-layout` */ 'masonry-layout').then(thenPromise).catch(catchPromise);\n }\n\n /**\n * This method load the query-string library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when jscroll is ready\n * @param catchPromise the code that must be executed when jscrol fails to load\n */\n loadQueryStringAndExecute(thenPromise, catchPromise) {\n this.log(\"Loading query-string\");\n import(/* webpackChunkName: `query-string` */ \"query-string\").then(thenPromise).catch(catchPromise);\n }\n\n /**\n * This method load the jscroll library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when jscroll is ready\n * @param catchPromise the code that must be executed when jscroll fails to load\n */\n // loadJscrollAndExecute(thenPromise, catchPromise) {\n // this.log(\"Loading jscroll\");\n // import(/* webpackChunkName: `jscroll` */ \"jscroll\").then(thenPromise).catch(catchPromise);\n // }\n\n /**\n * This method load the blueimp-file-upload library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when blueimp-file-upload is ready\n * @param catchPromise the code that must be executed when blueimp-file-upload fails to load\n */\n loadBlueimpFileUploadAndExecute(thenPromise, catchPromise) {\n this.log(\"Loading BlueimpFileUpload\");\n import(/* webpackChunkName: `blueimp-file-upload` */ \"blueimp-file-upload\").then(\n () => {\n import(/* webpackChunkName: `blueimp-file-upload` */ 'blueimp-file-upload/css/jquery.fileupload.css').then(thenPromise).catch(catchPromise); // js library\n }).catch(catchPromise);\n }\n\n /**\n * Load all jquery ui js (1.5kb gzipped)\n * @param widgetName the name of jquery wigget\n * @param thenPromise the code that must be executed when the widget is ready\n * @param catchPromise the code that must be executed when the widget fails to load\n */\n loadJqueryUIWidgetAndExecute(widgetName, thenPromise, catchPromise) {\n this.log(`Loading jQuery UI dist for ${widgetName}`);\n\n import(\n /* webpackChunkName: `jquery-ui` */\n 'jquery-ui-dist/jquery-ui').then(thenPromise).catch(catchPromise);\n }\n\n loadExternalScript(url) {\n return new Promise((resolve, reject) => {\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.addEventListener('load', () => resolve(script), false);\n script.addEventListener('error', () => reject(script), false);\n document.body.appendChild(script);\n });\n }\n}\n","import DependencyInjector from '../utils/DependencyInjector';\nimport { CustomEvents } from '../utils/CustomEvents';\nimport { match } from '../utils/ResolutionHandler';\nimport { getFirstFocusable } from \"../utils/FocusableElementUtils\";\nimport {on, emit, off, one} from '../utils/EventsBus';\n\n\n\n/**\n * Generic web component that expose a render method\n */\nexport default class Component {\n\n constructor() {\n this.moduleLoader = new DependencyInjector(); // Use this class to lazy load modules!!\n this.$customEvents = CustomEvents;\n this.$matchMedia = match;\n this.$on = on;\n this.$emit = emit;\n this.$off = off;\n this.$one = one;\n this.$getFirstFocusable = getFirstFocusable;\n }\n\n /**\n * Log utility\n * @param logStr\n */\n log(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.log(`%c[${myName}] %c${logStr}`, 'color: #f56c42', 'color: inherit');\n }\n }\n\n /**\n * Log utility\n * @param logStr\n */\n warn(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.warn(`[${myName}] ${logStr}`);\n }\n }\n\n /*\n Main method that execute the render logic of the component\n */\n render() {\n let myName = this.constructor.name;\n console.log(`[${myName}] Rendering..`);\n }\n}\n"],"sourceRoot":""}