{"version":3,"sources":["webpack:///webpack/bootstrap 04b84c8e21d6ecfb2423?78fc******","webpack:///./assets/scripts/carouselSlot.js"],"names":["carousels","$","$el","width","onInitialized","centerArrowImageLoad","observeCarouselHeightChange","setTabWidth","changeCarouselsByTab","count","isScrollable","productCount","marginValue","breakpoints","window","loopStatus","navText","responsive","nav","items","activeSlide","prevArrow","nextArrow","slideHeight","arrowHeight","arrowPosition","slideWidth","observer","initCarouselComponentSlot","document","pdpRecentlyViewedLength","pdpRecommendationsLength","activeClass","resizeObserver","element","imageElement","centerCarouselArrows","small","medium","large","CarouselSlot","carouselSlot"],"mappings":"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","file":"carouselSlot.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 04b84c8e21d6ecfb2423","'use strict';\r\n\r\nconst breakpoints = { small: 0, medium: 640, large: 1024 };\r\n\r\n\r\nfunction initCarouselComponentSlot() {\r\n let carousels = $('.slot-carousel-wrapper .slots-carousel .slides'); // Seleziona solo i caroselli all'interno del wrapper\r\n\r\n carousels.each((id, el) => {\r\n let $el = $(el);\r\n let width = $(window).width();\r\n\r\n\r\n if (!$el.hasClass('owl-loaded')) { // Previeni doppia inizializzazione\r\n $el.owlCarousel({\r\n ...getSettingSlotCarousel(el),\r\n onInitialized: function () {\r\n centerArrowImageLoad($el);\r\n observeCarouselHeightChange($el);\r\n }\r\n });\r\n\r\n // In caso di infinite loop a false permette di far vedere metà tile a sinistra\r\n // quando si raggiunge l'ultima slide del carosello\r\n /*$el.on('changed.owl.carousel', (event) => {\r\n\r\n if($el.parents('.complete-your-look-wrapper').length > 0 && width <= breakpoints.medium){\r\n var stage = $el.find('.owl-stage')\r\n\r\n let currentIndex = parseInt(event.item.index); // Current Slide\r\n let totalItems = parseInt(event.item.count); // Total Slides Number\r\n let visibleItems = parseInt(event.page.size); // Number of visible slides\r\n\r\n if (currentIndex + visibleItems >= totalItems) {\r\n stage.addClass('no-right-padding');\r\n } else {\r\n stage.removeClass('no-right-padding');\r\n }\r\n }\r\n });*/\r\n\r\n if($('.js-page').data('action') === 'Product-Show'){\r\n if($('.pdp-product-recommendations h5').length > 0){\r\n $('.callout-recommendations').text($('.pdp-product-recommendations h5').html());\r\n setTabWidth(el);\r\n $('.pdp-carousels__callOuts').removeClass('hide');\r\n }\r\n if($('.pdp-recently-viewed h5').length > 0){\r\n $('.callout-recently').text($('.pdp-recently-viewed h5').html());\r\n }\r\n changeCarouselsByTab();\r\n }\r\n\r\n if($el.parents('.complete-your-look-wrapper').length > 0){\r\n $el.parents('.complete-your-look-wrapper').removeClass('hide');\r\n }\r\n\r\n $el.trigger('refresh.owl.carousel');\r\n }\r\n });\r\n}\r\n\r\nfunction getSettingSlotCarousel(element) {\r\n let count = $(element).data('count').split('-');\r\n let isScrollable = $(element).data('scrollable');\r\n let productCount = $(element).children().length; // Conta i prodotti presenti\r\n let width = $(window).width();\r\n let marginValue = width >= breakpoints.large ? 40 : width >= breakpoints.medium ? 16 : 5;\r\n if(window.matchMedia(\"(orientation: landscape)\").matches){\r\n marginValue = 16;\r\n }\r\n\r\n if($('.pdp-carousels__callOuts').length > 0){\r\n $('.pdp-carousels__callOuts').css('gap', `${marginValue}px`);\r\n }\r\n let stagePaddingValue = 0;\r\n //This code allows you to show a part fo the following slide\r\n /*if($(element).parents('.complete-your-look-wrapper').length > 0 && width <= breakpoints.medium){\r\n stagePaddingValue = 20;\r\n }*/\r\n\r\n var loopStatus = (productCount > 2 && width < breakpoints.medium) ||\r\n (productCount > 4 && width >= breakpoints.medium) ? true : false;\r\n\r\n return {\r\n loop: loopStatus,\r\n margin: marginValue,\r\n navText: ['', ''],\r\n mouseDrag: isScrollable,\r\n touchDrag: isScrollable,\r\n stagePadding: stagePaddingValue,\r\n responsive: {\r\n [breakpoints.small]: { nav: productCount > count[2], dots: true, items: count[2] },\r\n [breakpoints.medium]: { nav: productCount > count[1], dots: false, items: count[1] },\r\n [breakpoints.large]: { nav: productCount > count[0], dots: false, items: count[0] },\r\n },\r\n };\r\n}\r\n\r\nfunction centerCarouselArrows(element) {\r\n // Seleziona tutte le slide attive\r\n const activeSlide = $(element).find('.owl-item.active .image-container img');\r\n const prevArrow = $(element).find('.owl-prev');\r\n const nextArrow = $(element).find('.owl-next');\r\n\r\n if (activeSlide.length > 0 && prevArrow && nextArrow) {\r\n // Ottieni l'altezza della slide attiva\r\n const slideHeight = activeSlide[0].offsetHeight;\r\n const arrowHeight = prevArrow[0].offsetHeight;\r\n\r\n // Calcola la posizione top delle frecce\r\n const arrowPosition = (slideHeight / 2) + arrowHeight ;\r\n\r\n // Imposta la posizione top delle frecce\r\n prevArrow.css('top', `${arrowPosition}px`);\r\n nextArrow.css('top', `${arrowPosition}px`);\r\n }\r\n}\r\n\r\nfunction setTabWidth(element) {\r\n let width = $(window).width();\r\n if(width >= breakpoints.medium && $(element).parents('.pdp-carousels').length > 0 && !$(element).hasClass('owl-hidden')){\r\n const activeSlide = $(element).find('.owl-item.active .image-container img');\r\n\r\n if (activeSlide.length > 0) {\r\n // Ottieni la larghezza della slide attiva\r\n const slideWidth = activeSlide[0].offsetWidth;\r\n if(slideWidth != 0){\r\n $('.pdp-carousels__callOuts h5').css('width', `${slideWidth}px`);\r\n }\r\n\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction observeCarouselLoad() {\r\n const observer = new MutationObserver(() => {\r\n if ($('.slot-carousel-wrapper .slots-carousel .slides').length > 0) {\r\n initCarouselComponentSlot();\r\n }\r\n });\r\n\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n}\r\n\r\n\r\nfunction changeCarouselsByTab() {\r\n var pdpRecentlyViewedLength = $('.pdp-recently-viewed .slot-carousel-wrapper').length;\r\n var pdpRecommendationsLength = $('.pdp-product-recommendations .slot-carousel-wrapper').length;\r\n\r\n if (pdpRecommendationsLength > 0 && pdpRecentlyViewedLength > 0) {\r\n $('.pdp-carousels__callOuts .callout').on('click', function () {\r\n $('.callout').removeClass('active');\r\n $('.pdp-carousels .recommendations').removeClass('active');\r\n\r\n $(this).addClass('active');\r\n var activeClass = $(this).data('active-class');\r\n $('.pdp-carousels .' + activeClass).addClass('active');\r\n });\r\n\r\n $('.pdp-carousels__callOuts .callout-recently').removeClass('hide');\r\n $('.pdp-carousels .recommendations .grid-container').addClass('tab-structure');\r\n }else{\r\n $('.pdp-carousels__callOuts').addClass('hide');\r\n $('.pdp-carousels .recommendations .grid-container').removeClass('tab-structure');\r\n }\r\n\r\n if(pdpRecommendationsLength > 0 ){\r\n $('.pdp-product-recommendations').addClass('active');\r\n $('.pdp-recently-viewed').removeClass('active');\r\n } else if (pdpRecentlyViewedLength > 0 ){\r\n $('.pdp-recently-viewed').addClass('active');\r\n $('.pdp-product-recommendations').removeClass('active');\r\n }\r\n}\r\n\r\n//Observer per Resize window\r\nfunction observeCarouselHeightChange(element) {\r\n const resizeObserver = new ResizeObserver(() => {\r\n centerCarouselArrows(element); // Riposizione le frecce se cambia altezza del carosello\r\n setTabWidth(element);\r\n });\r\n\r\n resizeObserver.observe(element[0]);\r\n}\r\n\r\nfunction centerArrowImageLoad(element) {\r\n\r\n const imageElement = element.find('.owl-item .image-container img');\r\n\r\n // evento di \"load\" per aspettare che l'immagine sia caricata e posizonare le frecce\r\n imageElement.on('load', function() {\r\n centerCarouselArrows(element);\r\n setTabWidth(element);\r\n });\r\n\r\n // se l'immagine è già caricata, posizona le frecce\r\n if (imageElement[0].complete) {\r\n centerCarouselArrows(element);\r\n setTabWidth(element);\r\n }\r\n}\r\n\r\nfunction initCarouselWithCorrectLoop() {\r\n let carousels = $('.slot-carousel-wrapper .slots-carousel .slides'); // Seleziona i caroselli\r\n\r\n carousels.each((id, el) => {\r\n let $el = $(el);\r\n if ($el.hasClass('owl-loaded')) { // Se il carosello è già stato inizializzato, distruggilo\r\n $el.trigger('destroy.owl.carousel');\r\n }\r\n\r\n let productCount = $(el).children().length; // Conta i prodotti nelle slide\r\n let width = $(window).width();\r\n\r\n // Calcola se attivare il loop in base alla larghezza\r\n var loopStatus = (productCount > 2 && width < breakpoints.medium) ||\r\n (productCount > 4 && width >= breakpoints.medium) ? true : false;\r\n\r\n // Inizializzazione del carosello con loop dinamico\r\n $el.owlCarousel(getSettingSlotCarousel(el, loopStatus));\r\n });\r\n}\r\n\r\nclass CarouselSlot {\r\n run() {\r\n $(document).ready(() => {\r\n initCarouselComponentSlot(); // Inizializzazione iniziale\r\n observeCarouselLoad(); // Monitoraggio dei nuovi caroselli\r\n });\r\n\r\n if($('.js-page').data('action') === 'Search-Show' || $('.js-page').data('action') === 'Cart-Show'){\r\n $(window).on('resize orientationchange', function() {\r\n initCarouselWithCorrectLoop(); // Rinizializza il carosello con il loop corretto\r\n });\r\n }\r\n }\r\n}\r\n\r\nconst carouselSlot = new CarouselSlot();\r\ncarouselSlot.run();\r\n\n\n\n// WEBPACK FOOTER //\n// ./assets/scripts/carouselSlot.js"],"sourceRoot":""}