1(function ($) { 2 /** 3 * @param $scope The Widget wrapper element as a jQuery element 4 * @param $ The jQuery alias 5 */ 6 var WidgetCTPostCarouselHandler = function ($scope, $) { 7 setTimeout(function () { 8 var breakpoints = elementorFrontend.config.breakpoints; 9 var carousel = $scope.find(".ct-slick-carousel"); 10 var data = carousel.data(); 11 var slickOptions = { 12 slidesToShow: data.colxl, 13 slidesToScroll: data.slidestoscroll, 14 autoplay: true === data.autoplay, 15 autoplaySpeed: data.autoplayspeed, 16 infinite: true === data.infinite, 17 pauseOnHover: true === data.pauseonhover, 18 speed: data.speed, 19 arrows: true === data.arrows, 20 dots: true === data.dots, 21 rtl: true === data.dir, 22 responsive: [ 23 { 24 breakpoint: 1200, 25 settings: { 26 slidesToShow: data.collg, 27 }, 28 }, 29 { 30 breakpoint: 992, 31 settings: { 32 slidesToShow: data.colmd, 33 }, 34 }, 35 { 36 breakpoint: 767, 37 settings: { 38 slidesToShow: data.colsm, 39 }, 40 }, 41 { 42 breakpoint: 575, 43 settings: { 44 slidesToShow: data.colxs, 45 slidesToScroll: data.colxs, 46 }, 47 }, 48 ], 49 }; 50 51 var nav_for = $scope.find(".ct-slick-nav"); 52 if (nav_for.length > 0) { 53 slickOptions.asNavFor = nav_for; 54 } 55 56 if (typeof carousel.attr("data-centerMode") !== "undefined") { 57 slickOptions.centerMode = 58 carousel.attr("data-centerMode") == "true" ? true : false; 59 } 60 if (typeof carousel.attr("data-fade") !== "undefined") { 61 slickOptions.fade = 62 carousel.attr("data-fade") == "true" ? true : false; 63 } 64 carousel.slick(slickOptions); 65 66 $(".ct-nav-carousel") 67 .parents(".elementor-section") 68 .addClass("hide-nav"); 69 $(".ct-nav-carousel .nav-prev").on("click", function () { 70 $(this) 71 .parents(".elementor-element") 72 .find(".slick-prev") 73 .trigger("click"); 74 }); 75 $(".ct-nav-carousel .nav-next").on("click", function () { 76 $(this) 77 .parents(".elementor-element") 78 .find(".slick-next") 79 .trigger("click"); 80 }); 81 82 $(".arrow-focus1 .ct-nav-carousel") 83 .parents(".site-content") 84 .find(".carousel-focus1") 85 .addClass("hide-nav"); 86 $(".arrow-focus1 .ct-nav-carousel .nav-prev").on( 87 "click", 88 function () { 89 $(this) 90 .parents(".site-content") 91 .find(".carousel-focus1 .slick-prev") 92 .trigger("click"); 93 } 94 ); 95 $(".arrow-focus1 .ct-nav-carousel .nav-next").on( 96 "click", 97 function () { 98 $(this) 99 .parents(".site-content") 100 .find(".carousel-focus1 .slick-next") 101 .trigger("click"); 102 } 103 ); 104 105 $(".ct-nav-slick").parent().addClass("hide-nav"); 106 $(".ct-nav-slick .nav-prev").on("click", function () { 107 $(this) 108 .parents(".ct-slick-slider") 109 .find(".slick-prev") 110 .trigger("click"); 111 }); 112 $(".ct-nav-slick .nav-next").on("click", function () { 113 $(this) 114 .parents(".ct-slick-slider") 115 .find(".slick-next") 116 .trigger("click"); 117 }); 118 119 var slider_nav = $scope.find(".ct-slick-nav"); 120 if (slider_nav.length > 0) { 121 $(slider_nav).slick({ 122 slidesToShow: parseInt(slider_nav.attr("data-nav")), 123 slidesToScroll: 1, 124 asNavFor: carousel, 125 dots: false,
126 arrows: false, 127 centerMode: true, 128 infinite: true, 129 focusOnSelect: true, 130 autoplay: false, 131 autoplaySpeed: 8000, 132 speed: 800, 133 rtl: true === slider_nav.data("dir"), 134 responsive: [ 135 { 136 breakpoint: 768, 137 settings: { 138 slidesToShow: 3, 139 }, 140 }, 141 ], 142 }); 143 } 144 }, 500); 145 }; 146 147 // Make sure you run this code under Elementor. 148 $(window).on("elementor/frontend/init", function () { 149 elementorFrontend.hooks.addAction( 150 "frontend/element_ready/ct_blog_carousel.default", 151 WidgetCTPostCarouselHandler 152 ); 153 elementorFrontend.hooks.addAction( 154 "frontend/element_ready/ct_service_carousel.default", 155 WidgetCTPostCarouselHandler 156 ); 157 elementorFrontend.hooks.addAction( 158 "frontend/element_ready/ct_portfolio_carousel.default", 159 WidgetCTPostCarouselHandler 160 ); 161 elementorFrontend.hooks.addAction( 162 "frontend/element_ready/ct_gallery_carousel.default", 163 WidgetCTPostCarouselHandler 164 ); 165 elementorFrontend.hooks.addAction( 166 "frontend/element_ready/ct_testimonial_carousel.default", 167 WidgetCTPostCarouselHandler 168 ); 169 elementorFrontend.hooks.addAction( 170 "frontend/element_ready/ct_team_carousel.default", 171 WidgetCTPostCarouselHandler 172 ); 173 elementorFrontend.hooks.addAction( 174 "frontend/element_ready/ct_fancybox_carousel.default", 175 WidgetCTPostCarouselHandler 176 ); 177 elementorFrontend.hooks.addAction( 178 "frontend/element_ready/ct_clients_list.default", 179 WidgetCTPostCarouselHandler 180 ); 181 elementorFrontend.hooks.addAction( 182 "frontend/element_ready/ct_case_study_carousel.default", 183 WidgetCTPostCarouselHandler 184 ); 185 elementorFrontend.hooks.addAction( 186 "frontend/element_ready/ct_fancy_box_carousel.default", 187 WidgetCTPostCarouselHandler 188 ); 189 elementorFrontend.hooks.addAction( 190 "frontend/element_ready/ct_offer_carousel.default", 191 WidgetCTPostCarouselHandler 192 ); 193 elementorFrontend.hooks.addAction( 194 "frontend/element_ready/ct_courses_carousel.default", 195 WidgetCTPostCarouselHandler 196 ); 197 elementorFrontend.hooks.addAction( 198 "frontend/element_ready/ct_slider.default", 199 WidgetCTPostCarouselHandler 200 ); 201 elementorFrontend.hooks.addAction( 202 "frontend/element_ready/ct_portfolio_external.default", 203 WidgetCTPostCarouselHandler 204 ); 205 elementorFrontend.hooks.addAction( 206 "frontend/element_ready/ct_service_external.default", 207 WidgetCTPostCarouselHandler 208 ); 209 elementorFrontend.hooks.addAction( 210 "frontend/element_ready/ct_history_carousel.default", 211 WidgetCTPostCarouselHandler 212 ); 213 }); 214})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.