1(function(){ 2 const difl_testimonialcarousel = document.querySelectorAll('.difl_testimonialcarousel'); 3 [].forEach.call(difl_testimonialcarousel, function(ele, index) { 4 const container = ele.querySelector('.df_tc_container'); 5 const data = JSON.parse(container.dataset.settings); 6 const selector = ele.querySelector('.swiper-container'); 7 handle_author_global_tag(ele, data.author_tag); 8 9 const item_spacing_tablet = '' !== data.item_spacing_tablet ? data.item_spacing_tablet : data.item_spacing; 10 const item_spacing_phone = '' !== data.item_spacing_phone ? data.item_spacing_phone : item_spacing_tablet; 11 12 var config = { 13 speed: parseInt(data.speed), 14 loop: data.loop, 15 effect: data.effect, 16 centeredSlides: data.centeredSlides === 'on' ? true : false, 17 threshold: 15, 18 19 slideClass: 'difl_testimonialcarouselitem', 20 observer: true, 21 observeParents: true, 22 observeSlideChildren: true, 23 watchSlidesVisibility: true, 24 preventClicks : true, 25 preventClicksPropagation: true, 26 slideToClickedSlide: false, 27 28 breakpoints: { 29 // desktop 30 981: { 31 slidesPerView: data.desktop, 32 spaceBetween : parseInt(data.item_spacing) 33 }, 34 // tablet 35 768: { 36 slidesPerView: data.tablet, 37 spaceBetween : parseInt(item_spacing_tablet) 38 }, 39 // mobile 40 1: { 41 slidesPerView: data.mobile, 42 spaceBetween : parseInt(item_spacing_phone) 43 }, 44 } 45 }; 46 47 if (data.effect === 'coverflow') { 48 config['coverflowEffect'] = { 49 slideShadows: data.slideShadows === 'on' ? true : false, 50 rotate: parseInt(data.rotate), 51 stretch: parseInt(data.stretch), 52 depth: parseInt(data.depth), 53 modifier: parseInt(data.modifier) 54 }; 55 } 56 57 // autoplay 58 if (data.autoplay === 'on') { 59 config['autoplay'] = { 60 delay: data.auto_delay, 61 disableOnInteraction: false 62 } 63 } 64 65 // arrow navigation 66 if (data.arrow === 'on') { 67 config['navigation'] = { 68 nextEl: '.tc-next-'+data.order, 69 prevEl: '.tc-prev-'+data.order 70 } 71 } 72 // dots pagination 73 if (data.dots === 'on') { 74 config['pagination'] = { 75 el: '.tc-dots-'+data.order, 76 type: 'bullets', 77 clickable: true 78 } 79 } 80 81 if (typeof Swiper === 'function') { 82 var slider = new Swiper (selector, config); 83 slider.update() 84 85 // pause on hover 86 if ( data.autoplay === 'on' && data.pause_hover === 'on') { 87 selector.addEventListener("mouseover", function(){ 88 slider.autoplay.stop(); 89 }) 90 selector.addEventListener("mouseout", function(){ 91 slider.autoplay.start(); 92 }) 93 } 94 95 if( data.autoplay === 'on' && slider ){ 96 document.addEventListener('scroll', ()=>{ 97 handleAutoplay(selector, slider) 98 }); 99 100 handleAutoplay(selector, slider) 101 } 102 } 103 // pointer event 104 df_tc_handle_mouseover_event(ele); 105 }) 106})() 107 108function df_tc_handle_mouseover_event(ele) { 109 const hover_class = 'df-ele-hover'; 110 let class_list = ele.classList; 111 112 ele.addEventListener('mouseleave', function(event) { 113 if(class_list.contains(hover_class)) { 114 setTimeout(function(){ 115 ele.classList.remove(hover_class); 116 }, 3000); 117 } 118 }) 119 120 ele.addEventListener('mouseenter', function(event) { 121 if( !ele.classList.contains(hover_class) ) { 122 ele.classList.add(hover_class); 123 } 124 }) 125} 126 127function inViewport(selector) { 128 129 const offset = 10; 130 const element = selector.getBoundingClientRect(); 131 const elementTop = Math.round(element.top) + offset; 132 const elementBottom = Math.round(element.bottom); 133 134 return elementTop <= window.innerHeight && elementBottom >= 0 135} 136 137function handleAutoplay(selector, swiper) { 138 if ( inViewport(selector) ) { 139 swiper.autoplay.start(); 140 141 return; 142 } 143 144 swiper.autoplay.stop(); 145} 146 147function handle_author_global_tag(selector, tag) { 148 if(selector.querySelectorAll('.df_tc_author_info').length === 0) {return;} 149 const difl_author_info_fields = selector.querySelectorAll('.df_tc_author_info'); 150 151 [].forEach.call(difl_author_info_fields, function(ele, index) { 152 if(!ele.querySelector('.author_name')) {return;} 153 const author_field = ele.querySelector('.author_name'); 154 const new_author_field = document.createElement(tag); 155 new_author_field.classList.add("author_name"); 156 new_author_field.innerText = author_field.innerText; 157 author_field.remove(); 158 ele.insertBefore(new_author_field, ele.firstChild); 159 }); 160}
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.