define(['jquery','underscore','matchMedia','Magento_PageBuilder/js/utils/breakpoints','Magento_PageBuilder/js/events','amsearchSlick'],function($,_,mediaCheck,breakpointsUtils,events){'use strict';function buildSlick($carouselElement,config){if($carouselElement.hasClass('slick-initialized')){$carouselElement.slick('unslick');} config.slidesToScroll=config.slidesToShow;$carouselElement.slick(config);} return function(config,element){var $element=$(element),$carouselElement=$element.children(),productCount=$element.find('.amsearch-item').length,centerModeClass='center-mode',amSearchClass='amsearch-pagebuilder-carousel',carouselMode=$element.data('carousel-mode'),slickConfig={autoplay:$element.data('autoplay'),autoplaySpeed:$element.data('autoplay-speed')||0,arrows:$element.data('show-arrows'),dots:$element.data('show-dots')};$element.addClass(amSearchClass);_.each(config.breakpoints,function(breakpoint){mediaCheck({media:breakpointsUtils.buildMedia(breakpoint.conditions),entry:function(){var slidesToShow=breakpoint.options.products[carouselMode]?breakpoint.options.products[carouselMode].slidesToShow:breakpoint.options.products.default.slidesToShow;slickConfig.slidesToShow=parseFloat(slidesToShow);if(carouselMode==='continuous'&&productCount>slickConfig.slidesToShow){$element.addClass(centerModeClass);slickConfig.centerPadding=$element.data('center-padding');slickConfig.centerMode=config.breakpoints['mobile-small'].conditions!==breakpoint.conditions;}else{$element.removeClass(centerModeClass);slickConfig.infinite=$element.data('infinite-loop');} buildSlick($carouselElement,slickConfig);}});});events.on('contentType:redrawAfter',function(args){if($carouselElement.closest(args.element).length){$carouselElement.slick('setPosition');}});};});