1const TPFlexSlider = { 2 num_items: 0, 3 current_item: 1, 4 current_slide: 1, 5 total_slides: 1, 6 num_reviews_viewable: 1, 7 width: 0, 8 9 init: function (){ 10 if (document.querySelector("#slider-container-outer")){ 11 this.addEvents(); 12 13 document.querySelector("#prev-button").style.display = "none"; 14 15 this.num_items = document.querySelectorAll(".slider-item").length; 16 this.num_reviews_viewable = this.get_num_reviews_viewable(); 17 this.total_slides = Math.ceil(this.num_items / this.num_reviews_viewable); 18 19 this.width = document.querySelector("#slider-container-outer").clientWidth / this.num_reviews_viewable; 20 document.querySelectorAll(".slider-item").forEach((elem) => { 21 elem.style.width = this.width + "px"; 22 }); 23 } 24 }, 25 26 addEvents: function (){ 27 document.querySelector("#slider-container").addEventListener('transitionend', () => { 28 this.transitionEnd(); 29 }); 30 31 document.querySelector("#prev-button").addEventListener('click', () => { 32 this.gotoPrev(); 33 }); 34 35 document.querySelector("#next-button").addEventListener('click', () => { 36 this.gotoNext(); 37 }); 38 39 window.addEventListener('resize', () => { 40 this.onResize(); 41 }); 42 }, 43 44 transitionEnd: function (){ 45 document.querySelector("#slider-container").classList.remove('slider-container-transition'); 46 }, 47 48 onResize: function (){ 49 this.num_reviews_viewable = this.get_num_reviews_viewable(); 50 51 this.total_slides = Math.ceil(this.num_items / this.num_reviews_viewable); 52 this.current_slide = Math.ceil(this.current_item / this.num_reviews_viewable); 53 54 this.width = document.querySelector("#slider-container-outer").clientWidth / this.num_reviews_viewable; 55 56 translateX = (this.current_slide - 1) * (this.width * -this.num_reviews_viewable); 57 58 document.querySelectorAll(".slider-item").forEach((elem) => { 59 elem.style.width = this.width + "px"; 60 }); 61 document.querySelector("#slider-container").style.transform = 'translateX(' + translateX + 'px)'; 62 }, 63 64 gotoPrev: function (){ 65 this.current_item -= this.num_reviews_viewable; 66 this.current_slide--; 67 68 document.querySelector("#next-button").style.display = ""; 69 if (this.current_slide == 1){ 70 document.querySelector("#prev-button").style.display = "none"; 71 } 72 73 let translateX; 74 if (this.current_slide >= 1){ 75 translateX = (this.current_slide - 1) * (this.width * -this.num_reviews_viewable); 76 } else{ 77 translateX = (this.total_slides - 1) * (this.width * -this.num_reviews_viewable); 78 this.current_item = ((this.total_slides - 1) * this.num_reviews_viewable) + 1; 79 this.current_slide = this.total_slides; 80 } 81 82 document.querySelector("#slider-container").classList.add('slider-container-transition'); 83 document.querySelector("#slider-container").style.transform = 'translateX(' + translateX + 'px)'; 84 }, 85 86 gotoNext: function (){ 87 this.current_item += this.num_reviews_viewable; 88 this.current_slide++; 89 90 document.querySelector("#prev-button").style.display = ""; 91 if (this.current_slide == this.total_slides){ 92 document.querySelector("#next-button").style.display = "none"; 93 } 94 95 let translateX;
96 if (this.current_slide <= this.total_slides){ 97 translateX = (this.current_slide - 1) * (this.width * -this.num_reviews_viewable); 98 } else{ 99 translateX = 0; 100 this.current_item = 1; 101 this.current_slide = 1; 102 } 103 104 document.querySelector("#slider-container").classList.add('slider-container-transition'); 105 document.querySelector("#slider-container").style.transform = 'translateX(' + translateX + 'px)'; 106 }, 107 108 get_num_reviews_viewable: function (){ 109 if (window.innerWidth >= 1240){ 110 return 4; 111 } else if (window.innerWidth >= 990){ 112 return 3; 113 } else if (window.innerWidth >= 770){ 114 return 2; 115 } else{ 116 return 1; 117 } 118 } 119};
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.