1/** 2 * @file 3 * Global utilities. 4 */ 5 6(function ($, Drupal, once) { 7 8 'use strict'; 9 10 Drupal.behaviors.iitb_bootstrap = { 11 attach: function (context) { 12 13 // Search toggle. 14 $(once('search-icon', '.search-icon', context)).on('click', function () { 15 $(this).siblings('.search-form-wrapper').toggle(); 16 $(this).parents('.block-search').toggleClass('search-open'); 17 $(this).parents().siblings('.navbar-collapse.show').removeClass('show'); 18 $(this).parents().siblings('.navbar-toggler').attr('aria-expanded', false); 19 }); 20 21 /** 22 * Shared Slick configuration. 23 */ 24 const slickOptions = { 25 slidesToShow: 3, 26 slidesToScroll: 1, 27 arrows: true, 28 infinite: true, 29 responsive: [ 30 { 31 breakpoint: 991, 32 settings: { 33 slidesToShow: 3, 34 slidesToScroll: 3 35 } 36 }, 37 { 38 breakpoint: 768, 39 settings: { 40 slidesToShow: 2, 41 slidesToScroll: 2 42 } 43 }, 44 { 45 breakpoint: 575, 46 settings: { 47 slidesToShow: 1, 48 slidesToScroll: 1 49 } 50 } 51 ] 52 }; 53 54 /** 55 * Homepage News Slider 56 */ 57 $(once('homepage-news-slider', '.homepage-news > .view-content', context)).each(function () { 58 if ($(this).children().length > 0 && !$(this).hasClass('slick-initialized')) { 59 $(this).slick(slickOptions); 60 } 61 }); 62 63 /** 64 * Research Highlights Slider 65 */ 66 $(once('research-highlights-slider', '.research-highlights > .view-content', context)).each(function () { 67 if ($(this).children().length > 0 && !$(this).hasClass('slick-initialized')) { 68 $(this).slick(slickOptions); 69 } 70 }); 71 72 /** 73 * Homepage Events Slider 74 */ 75 $(once('homepage-events-slider', '.homepage-events > .view-content', context)).each(function () { 76 if ($(this).children().length > 0 && !$(this).hasClass('slick-initialized')) { 77 $(this).slick(slickOptions); 78 } 79 }); 80 81 /** 82 * Accordion 83 */ 84 $(once( 85 'divisionPage', 86 '.iitb-accordion.main-item > .accordion-group > .accordion-head', 87 context 88 )).on('click', function () { 89 90 $(this).parents('.main-item').toggleClass('div-open'); 91 92 $('.iitb-accordion.main-item > .accordion-group') 93 .not($(this).parents('.accordion-group')) 94 .removeClass('div-open'); 95 96 }); 97 98 /* 99 // Uncomment if required in future. 100 101 var searchInput = document.querySelector('.academic-divisions input[name="title"]'); 102 103 if (searchInput) { 104 const urlParams = new URLSearchParams(window.location.search); 105 const myParam = urlParams.get('title'); 106 107 if (myParam !== null && myParam !== '') { 108 openAccordion(); 109 } 110 } 111 112 function openAccordion() { 113 document.querySelectorAll('.iitb-accordion').forEach(function (accordionGroup) { 114 accordionGroup.classList.add('div-open'); 115 }); 116 } 117 */ 118 119 } 120 }; 121 122})(jQuery, Drupal, once);
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.