PageSourceSearch

https://www.paruluniversity.ac.in/wp-content/themes/parul/assets/j…/about-page-leadership.js?ver=1789123313

js paruluniversity.ac.in collected 2026-09-24 09:41:02 UTC 4,190 bytes, 149 lines download raw bytes

1/**
2 * WordPress Block Script: About Page Leadership Slider
3 */
4(function ($) {
5  'use strict';
6
7  function initPuAboutLeadersSlider() {
8    var $slider = $('.pu-about-leaders-slider');
9    var $navWrap = $('.pu-about-leaders-nav-wrap');
10    var $progressBar = $('.pu-about-leaders-progress-bar');
11    var $prevBtn = $('.pu-about-leaders-prev');
12    var $nextBtn = $('.pu-about-leaders-next');
13
14    if ($slider.length && !$slider.hasClass('slick-initialized')) {
15      function updateSliderNav(slick, currentSlide) {
16        var current =
17          typeof currentSlide === 'number'
18            ? currentSlide
19            : slick && typeof slick.currentSlide === 'number'
20            ? slick.currentSlide
21            : 0;
22        var total = slick.slideCount;
23        var slidesToShow = slick.options.slidesToShow || 3;
24        var maxSteps = total - Math.floor(slidesToShow) + 1;
25
26        if (total <= Math.floor(slidesToShow)) {
27          $navWrap.hide();
28        } else {
29          $navWrap.show();
30          var progressPercent =
31            ((current + 1) / (maxSteps > 0 ? maxSteps : 1)) * 100;
32          if (progressPercent > 100) progressPercent = 100;
33          if (progressPercent < 0) progressPercent = 0;
34          $progressBar.css('width', progressPercent + '%');
35
36          // Arrow opacity controls
37          if (!slick.options.infinite) {
38            var maxIndex = total - Math.floor(slidesToShow);
39            $prevBtn.css({
40              opacity: current <= 0 ? '0.3' : '1',
41              'pointer-events': current <= 0 ? 'none' : 'auto',
42            });
43            $nextBtn.css({
44              opacity: current >= maxIndex ? '0.3' : '1',
45              'pointer-events': current >= maxIndex ? 'none' : 'auto',
46            });
47          }
48        }
49      }
50
51      $slider.on(
52        'init reInit afterChange',
53        function (event, slick, currentSlide) {
54          updateSliderNav(slick, currentSlide);
55        }
56      );
57
58      $slider.slick({
59        dots: false,
60        arrows: false,
61        infinite: false,
62        speed: 400,
63        slidesToShow: 3,
64        slidesToScroll: 1,
65        draggable: true,
66        swipe: true,
67        touchMove: true,
68        touchThreshold: 8,
69        swipeToSlide: true,
70        dotsClass: 'pu-about-leaders-dots',
71        responsive: [
72          {
73            breakpoint: 1200,
74            settings: {
75              slidesToShow: 3,
76              slidesToScroll: 1,
77              dots: false,
78            },
79          },
80          {
81            breakpoint: 992,
82            settings: {
83              slidesToShow: 2.15,
84              slidesToScroll: 1,
85              dots: false,
86            },
87          },
88          {
89            breakpoint: 768,
90            settings: {
91              slidesToShow: 1.15,
92              slidesToScroll: 1,
93              dots: true,
94            },
95          },
96          {
97            breakpoint: 576,
98            settings: {
99              slidesToShow: 1.05,
100              slidesToScroll: 1,
101              dots: true,
102            },
103          },
104        ],
105      });
106
107      // Laptop touchpad two-finger horizontal scroll support
108      var sliderNode = $slider[0];
109      if (sliderNode) {
110        var isWheelScrolling = false;
111        sliderNode.addEventListener(
112          'wheel',
113          function (e) {
114            if (
115              Math.abs(e.deltaX) > Math.abs(e.deltaY) &&
116              Math.abs(e.deltaX) > 12
117            ) {
118              e.preventDefault();
119              if (!isWheelScrolling) {
120                isWheelScrolling = true;
121                if (e.deltaX > 0) {
122                  $slider.slick('slickNext');
123                } else {
124                  $slider.slick('slickPrev');
125                }
126                setTimeout(function () {
127                  isWheelScrolling = false;
128                }, 300);
129              }
130            }
131          },
132          { passive: false }
133        );
134      }
135
136      $prevBtn.on('click', function () {
137        $slider.slick('slickPrev');
138      });
139
140      $nextBtn.on('click', function () {
141        $slider.slick('slickNext');
142      });
143    }
144  }
145
146  $(document).ready(function () {
147    initPuAboutLeadersSlider();
148  });
149})(jQuery);

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.