1// const changeLogo = () => { 2// const url = window.location.href; 3// console.log(url); 4// if (url.includes("businessschool")) { 5// document.querySelector(".menu__logo img").setAttribute("src", "/sites/default/files/2024-03/Grupo%20668.svg"); 6// document.querySelector("#block-esue-logofooter img").setAttribute("src", "/sites/default/files/2024-03/Grupo%20668.svg"); 7// document.querySelector("#block-esue-logofooter").style.maxWidth = "200px"; 8// } 9// }; 10 11// set EBS footer logo click event 12/* 13 const target = document.querySelector("#block-esue-logofooter"); 14 if (target !== null) { 15 target.style.cursor = "pointer"; 16 target.addEventListener("click", function () { 17 window.location.href = "/businessschool"; 18 }); 19 }; 20}; 21*/ 22window.addEventListener("load", function () { 23 // changeLogo(); 24 // setClickEvent(); 25 const testimonioSlider = () => { 26 const slider = document.querySelector(".testimonios__slider"); 27 const prevButton = document.querySelector(".prev-btn"); 28 const nextButton = document.querySelector(".next-btn"); 29 30 if (prevButton) { 31 prevButton.addEventListener("click", function () { 32 slider.insertAdjacentElement("afterbegin", slider.lastElementChild); 33 hideFirstAndLastSlides(); 34 }); 35 } 36 if (prevButton) { 37 nextButton.addEventListener("click", function () { 38 slider.insertAdjacentElement("beforeend", slider.firstElementChild); 39 hideFirstAndLastSlides(); 40 }); 41 } 42 43 const hideFirstAndLastSlides = function () { 44 const slides = Array.from(slider.querySelectorAll(".slide")); 45 slides.forEach((slide) => slide.classList.remove("opacity-0")); 46 slider.firstElementChild.classList.add("opacity-0"); 47 slider.lastElementChild.classList.add("opacity-0"); 48 }; 49 }; 50 51 /* 52 * My adaptation of: 53 * Flux 3D Carousel 54 * Author: Dean Coulter 55 * Licensed under the MIT license 56 * Version 0.1 57 * 58 * - Changed from figure element cards to any html. 59 * - Removed use of id, to allow multiple carousels. 60 * - Blocking of events on cards in the background. 61 * - Dimming of cards in the background. 62 * - Fixed continuous rotation. 63 * - Added functionality for multiple carousels. 64 * - Adding clickable arrow icon buttons on the sides. 65 */ 66 function cardCarousel3d(carousels) { 67 var rotateHandler = function (evt) { 68 var carousel = this.parentElement; 69 if (carousel.classList.contains("card-carousel") === false) { 70 var carousel = carousel.parentElement; 71 } 72 var rotate_int = parseInt(carousel.dataset.rotateInt || 0); 73 if (this.classList.contains("counterclockwise")) { 74 rotate_int += 1; 75 } else if (this.classList.contains("clockwise")) { 76 rotate_int -= 1; 77 } 78 carousel.dataset.rotateInt = rotate_int; 79 animate_slider(carousel); 80 }; 81 for (var i = 0; i < carousels.length; i++) { 82 var carousel = carousels[i]; 83 var inner = carousel.querySelector(".inner-carousel"); 84 var cards = carousel.querySelectorAll(".inner-carousel > div"); 85 var size = cards.length; 86 var panelSize = inner.clientWidth; 87 var translateZ = 88 Math.round(panelSize / 2 / Math.tan(Math.PI / size)) * 1.7;
89 inner.style.transform = "rotateY(0deg) translateZ(-" + translateZ + "px)"; 90 var btnLeft = carousel.querySelector(".button-spin.counterclockwise"); 91 if (btnLeft !== null) { 92 btnLeft.addEventListener("click", rotateHandler, false); 93 } 94 var btnRight = carousel.querySelector(".button-spin.clockwise"); 95 if (btnRight !== null) { 96 btnRight.addEventListener("click", rotateHandler, false); 97 } 98 animate_slider(carousel); 99 } 100 101 function animate_slider(carousel) { 102 var rotate_int = parseInt(carousel.dataset.rotateInt || 0); 103 var inner = carousel.querySelector(".inner-carousel"); 104 var cards = carousel.querySelectorAll(".inner-carousel > div"); 105 var size = cards.length; 106 var panelSize = inner.clientWidth; 107 var translateZ = 108 Math.round(panelSize / 2 / Math.tan(Math.PI / size)) * 1.7; 109 var rotateY = 0; 110 var ry = 360 / size; 111 rotateY = ry * rotate_int; 112 113 for (var i = 0; i < size; i++) { 114 var z = rotate_int * ry + i * ry; 115 var child = cards[i]; 116 child.style.transform = 117 "rotateY(" + 118 z + 119 "deg) translateZ(" + 120 translateZ / 2 + 121 "px) rotateY(" + 122 (-z).toString() + 123 "deg)"; 124 child.classList.remove("clockwise"); 125 child.classList.remove("front"); 126 child.classList.remove("counterclockwise"); 127 child.removeEventListener("click", rotateHandler, false); 128 var zz = z % 360; 129 if (zz === 0) { 130 child.classList.add("front"); 131 } else if (zz === ry || zz === -360 + ry) { 132 child.classList.add("clockwise"); 133 child.addEventListener("click", rotateHandler, false); 134 } else if (zz === 360 - ry || zz === 0 - ry) { 135 child.classList.add("counterclockwise"); 136 child.addEventListener("click", rotateHandler, false); 137 } 138 } 139 } 140 } 141 142 function showSlides(n) { 143 let i; 144 let slides = document.getElementsByClassName("hero-slider__slide"); 145 146 if (slides && slides.length > 0) { 147 let animate = document.getElementById("slider__content"); 148 // Check if 'animate' is null. 149 if (!animate) { 150 console.error("animate element not found"); 151 return; 152 } 153 // let dots = document.getElementsByClassName("slider__pagination"); 154 155 //If we go past the final slide, take us back to the beginning. 156 if (n > slides.length) { 157 slideIndex = 1; 158 } 159 160 //If we go less than 1, take us to the final slide. 161 if (n < 1) { 162 slideIndex = slides.length; 163 } 164 165 //Apply .2 opacity class for every instant of our slides. 166 for (i = 0; i < slides.length; i++) { 167 // Add a check here to see if the element is not null 168 if (slides[i]){ 169 slides[i].style.opacity = "0"; // Access 'style' only if the element exists. 170 } 171 172 } 173 174 //setRRSSLinks(); 175 // const clampString = (str) => { 176 // return str.trim().substring(0, 3); 177 // }; 178 // 179 // const clampEventBadge = async () => { 180 // const elements = document.querySelectorAll( 181 // ".event__card-date-badge-month", 182 // ); 183 // await elements.forEach((element) => {
184 // const month = element.textContent; 185 // element.textContent = clampString(month); 186 // }); 187 // }; 188 189 // clampEventBadge(); 190 191 //Apply 1 opacity and apply is-active class for current slide and dot. 192 if (slides && slides.length > 0 && slideIndex > 0 && slideIndex <= slides.length && slideIndex - 1 < slides.length) { 193 if (slides[slideIndex - 1]) { 194 slides[slideIndex - 1].style.opacity = "1"; 195 } 196 197 // dots[slideIndex - 1].className += " is-active"; 198 if (slideIndex > 1) { 199 animate.style.transform = "translateX(-" + (slideIndex - 1) + "00%)"; 200 } else { 201 animate.style.transform = "translateX(0%)"; 202 } 203 } 204 } else { 205 console.error("No elements with class 'hero-slider__slide' found."); 206 return; // Exit the function early if no elements are found. 207 } 208 209 210 } 211 212 213 cardCarousel3d(document.querySelectorAll(".card-carousel")); 214 215 let slideIndex = 1; 216 showSlides(slideIndex); 217 // eslint-disable-next-line no-unused-vars 218 function moveSlide(n) { 219 showSlides((slideIndex += n)); 220 } 221 const prev = document.querySelector("#prev"); 222 const next = document.querySelector("#next"); 223 if (prev !== null && next !== null) { 224 prev.addEventListener("click", function () { 225 moveSlide(-1); 226 }); 227 next.addEventListener("click", function () { 228 moveSlide(1); 229 }); 230 } 231 // function currentSlide (n) { 232 // showSlides(slideIndex = n); 233 // } 234 235 236 237 238 let autoSlider = null; 239 240 const stopAutoSlider = () => { 241 clearInterval(autoSlider); 242 }; 243 244 const moveAutoSlider = () => { 245 autoSlider = setInterval(function () { 246 moveSlide(1); 247 }, 45000); 248 }; 249 if (document.getElementById("slider__content") !== null) { 250 document 251 .getElementById("slider__content") 252 .addEventListener("mouseover", stopAutoSlider); 253 document 254 .getElementById("slider__content") 255 .addEventListener("mouseout", moveAutoSlider); 256 } 257 //setRRSSLinks(); 258 259 const toggleMobileMenu = () => { 260 const toggler = document.querySelector(".menu__logo-button"); 261 const target = document.querySelector(".menu"); 262 if (toggler !== null && target !== null) { 263 toggler.addEventListener("click", function () { 264 toggler.classList.toggle("is--open"); 265 target.classList.toggle("is--open"); 266 }); 267 } 268 }; 269 270 testimonioSlider(); 271 moveAutoSlider(); 272 toggleMobileMenu(); 273}); 274 275const galleryItem = document.querySelectorAll(".card-gallery__container div"); 276 277const carouselModal = (e) => { 278 e.preventDefault(); 279 280 const modal = document.querySelector(".modal.gallery__modal"); 281 const modalImg = document.querySelector(".modal__image img"); 282 283 modalImg.setAttribute("src", ""); 284 const imgSrc = e.target.getAttribute("src"); 285 modalImg.setAttribute("src", imgSrc); 286 287 modal.classList.add("modal--visible"); 288}; 289const closeCarouselModal = () => { 290 const modal = document.querySelector(".modal.gallery__modal"); 291 modal.classList.remove("modal--visible"); 292}; 293galleryItem.forEach((item) => { 294 item.addEventListener("click", carouselModal); 295}); 296 297const closeModal = document.querySelector(".modal__close, .modal"); 298if (closeModal !== null) { 299 closeModal.addEventListener("click", closeCarouselModal); 300} 301 302/* 303 304const EBSmenu = document.querySelector(".header-ebs .menu__logo"); 305if (EBSmenu !== null) { 306 EBSmenu.href = "/businessschool"; 307} 308*/
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.