PageSourceSearch

https://iitb.ac.in/themes/custom/iitb_bootstrap/js/global.js?v=10.6.16

js iitb.ac.in collected 2026-10-01 08:44:44 UTC 3,223 bytes, 122 lines download raw bytes

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.