PageSourceSearch

https://docshipper.fr/wp-content/plugins/docshipper-core/assets/js/main.js?ver=1791503295

js docshipper.fr collected 2026-10-08 23:48:44 UTC 32,128 bytes, 1,032 lines download raw bytes

1(function ($) {
2  "use strict";
3
4  var tocActive = true;
5  $(document).on(
6    "click",
7    ".table-of-content-list-item .switch input",
8    function (e) {
9      console.log(tocActive);
10
11      if (tocActive) {
12        $(".table-of-content-list-item .toc-container").slideUp();
13        tocActive = false;
14        return;
15      } else {
16        $(".table-of-content-list-item .toc-container").slideDown();
17        tocActive = true;
18      }
19    }
20  );
21
22  if ($(".docshipper-main-content").length) {
23    docshipperGenerateTOC(".docshipper-main-content", ".toc-container");
24  }
25
26  function docshipperGenerateTOC(containerSelector, tocContainerSelector) {
27    const $contentContainer = $(containerSelector); // The main content container
28    const $tocContainer = $(tocContainerSelector); // The container where TOC will be rendered
29
30    if (!$contentContainer.length || !$tocContainer.length) {
31      console.log("Container not found.");
32      return;
33    }
34
35    // Extract headings from the content
36    const headings = $contentContainer.find("h2, h3, h4, h5, h6");
37    if (headings.length === 0) {
38      console.log("No headings found.");
39      return;
40    }
41
42    let tocHTML = '<ul class="toc-widget">';
43    let previousLevel = 2; // Default start level (h2)
44    let topLevelIndex = 0; // Numbering for top-level items
45    let hasSeenH2 = false; // Flag to check if h2 has been encountered
46
47    headings.each(function (i) {
48      const $heading = $(this);
49      let currentLevel = parseInt(this.tagName.replace("H", ""));
50      let title = $heading.text().trim();
51      const headingID = title
52        .toLowerCase()
53        .replace(/<\/?(strong|b|br)>/gi, "")
54        .replace(/[^a-z0-9]+/g, "-")
55        .replace(/^-+|-+$/g, "");
56
57      // Add an ID to the heading if not present
58      if (!$heading.attr("id")) {
59        $heading.attr("id", headingID);
60      }
61
62      // Treat all headings before the first h2 as h2
63      if (!hasSeenH2) {
64        currentLevel = 2;
65      }
66
67      // Update the flag if h2 is encountered
68      if (currentLevel === 2) {
69        hasSeenH2 = true;
70      }
71
72      // Close or open lists based on level difference
73      if (currentLevel > previousLevel) {
74        tocHTML += '<ul class="toc-sub-items mt-0">';
75      } else if (currentLevel < previousLevel) {
76        tocHTML +=
77          "</li>" + "</ul>".repeat(previousLevel - currentLevel) + "</li>";
78      } else {
79        tocHTML += "</li>";
80      }
81
82      // Check if the current heading has sub-items
83      const nextLevel =
84        headings[i + 1] !== undefined
85          ? parseInt(headings[i + 1].tagName.replace("H", ""))
86          : 0;
87      const hasChildren = currentLevel === 2 && nextLevel > currentLevel;
88
89      // Add numbering for top-level items (h2)
90      let numbering = "";
91      if (currentLevel === 2) {
92        topLevelIndex++;
93        numbering = topLevelIndex + ". ";
94      }
95
96      // Add dropdown icon if the item has children
97      const dropdownIcon = hasChildren
98        ? ' <i class="fa fa-angle-down"></i>'
99        : "";
100
101      // Add the current item to the TOC
102      tocHTML += `<li><a href="#${headingID}" class="${
103        hasChildren ? "arrow-link arrow-link-d" : "arrow-link"
104      }">${numbering}${title}${dropdownIcon}</a>`;
105
106      // Replace the original heading in the content with an ID
107      $heading.replaceWith(
108        `<h${currentLevel} id="${headingID}">${title}</h${currentLevel}>`
109      );
110
111      previousLevel = currentLevel;
112    });
113
114    // Close any remaining open lists
115    tocHTML += "</li>".repeat(previousLevel - 2) + "</ul>";
116
117    // Append the generated TOC to the container
118    $tocContainer.html(tocHTML);
119  }
120
121  /*---------------------------------------------------
122        * Initialize all widget js in elementor init hook
123        ---------------------------------------------------*/
124  $(window).on("elementor/frontend/init", function () {
125    // process Slider one
126    elementorFrontend.hooks.addAction(
127      "frontend/element_ready/docshipper-process-slider-one.default",
128      function ($scope) {
129        activeProcessSliderOne($scope);
130      }
131    );
132
133    // testimonial Slider one
134    elementorFrontend.hooks.addAction(
135      "frontend/element_ready/docshipper-testimonial-slider-one.default",
136      function ($scope) {
137        activeTestimonialSliderOne($scope);
138      }
139    );
140
141    // airport Slider
142    elementorFrontend.hooks.addAction(
143      "frontend/element_ready/docshipper-airport-slider.default",
144      function ($scope) {
145        activeAirportSliderOne($scope);
146      }
147    );
148
149    // testimonial Slider two
150    elementorFrontend.hooks.addAction(
151      "frontend/element_ready/docshipper-testimonial-slider-two.default",
152      function ($scope) {
153        activeTestimonialSliderTwo($scope);
154      }
155    );
156
157    // service Slider one
158    elementorFrontend.hooks.addAction(
159      "frontend/element_ready/docshipper-service-slider-widget.default",
160      function ($scope) {
161        activeServiceSliderOne($scope);
162      }
163    );
164
165    // team Slider one
166    elementorFrontend.hooks.addAction(
167      "frontend/element_ready/docshipper-team-slider-one-widget.default",
168      function ($scope) {
169        activeTeamSliderOne($scope);
170      }
171    );
172
173    // team Slider two
174    elementorFrontend.hooks.addAction(
175      "frontend/element_ready/docshipper-team-slider-two-widget.default",
176      function ($scope) {
177        activeTeamSliderTwo($scope);
178      }
179    );
180
181    // blog Slider one
182    elementorFrontend.hooks.addAction(
183      "frontend/element_ready/docshipper-blog-slider-one-widget.default",
184      function ($scope) {
185        activeBlogSliderOne($scope);
186      }
187    );
188  });
189
190  var docShipperCPT = $(document).find(".docshipper-cpt");
191
192  if (docShipperCPT.length) {
193    activeBlogSliderOne($(".blog-slider-one"));
194
195    // activeTeamSliderTwo("");
196    // activeTeamSliderOne("");
197    // activeServiceSliderOne("");
198    // activeTestimonialSliderTwo("");
199
200    activeAirportSliderOne($(".airport-slider-one-wrap"));
201
202    activeTestimonialSliderOne($(".testimonial-slider-one-wrap"));
203
204    activeProcessSliderOne($(".process-slider-one-wrap"));
205  }
206
207  // JS for rtl
208  var rtlEnable = $("html").attr("dir");
209  var SlickRtlValue = !(
210    typeof rtlEnable === "undefined" || rtlEnable === "ltr"
211  );
212
213 /*----------------------------
214      Process Slider One
215  --------------------------*/
216function activeProcessSliderOne($scope) {
217    var el = $scope.find(".process-slider");
218    var elSettings = el.data("settings");
219
220    if (
221        el.children("div").length < 2 ||
222        elSettings.items === "0" ||
223        elSettings.items === "" ||
224        typeof elSettings.items == "undefined"
225    ) {
226        return;
227    }
228
229    let $selector = "#" + el.attr("id");
230
231    let sliderSettings = {
232        infinite: elSettings.loop === "yes",
233        slidesToShow: parseInt(elSettings.items),
234        slidesToScroll: 1,
235        arrows: elSettings.nav === "yes",
236        dots: elSettings.dot === "yes",
237        appendArrows: $scope.find(".slick-carousel-controls .slider-nav"),
238        appendDots: $scope.find(".slick-carousel-controls .slider-dots"),
239        prevArrow:
240            '<div class="prev-arrow slick-arrow-left slick-prev">' +
241            elSettings.navleft +
242            "</div>",
243        nextArrow:
244            '<div class="next-arrow slick-arrow-right slick-next">' +
245            elSettings.navright +
246            "</div>",
247        autoplaySpeed: elSettings.autoplaytimeout,
248        autoplay: elSettings.autoplay === "yes",
249        centerMode: elSettings.center === "yes",
250        centerPadding: "0",
251        cssEase: "linear",
252        responsive: [
253            {
254                breakpoint: 1024,
255                settings: {
256                    slidesToShow: 3,
257                    slidesToScroll: 1,
258                },
259            },
260            {
261                breakpoint: 600,
262                settings: {
263                    slidesToShow: 2,
264                    slidesToScroll: 1,
265                },
266            },
267            {
268                breakpoint: 480,
269                settings: {
270                    slidesToShow: 2,
271                    slidesToScroll: 1,
272                },
273            },
274        ],
275    };
276
277    wowSlickInit($selector, sliderSettings);
278}
279
280// Select progress bar elements
281var $scprogressBar = $(".slider-controlprogress");
282var $progressBarLabel = $(".slider__label_Progress");
283
284// Update progress bar correctly based on visible slides
285$(".process-slider").on("beforeChange", function (event, slick, currentSlide, nextSlide) {
286    var slidesToShow = slick.options.slidesToShow; // Number of slides visible at once
287    var slidesToScroll = slick.options.slidesToScroll; // Number of slides that move per scroll
288    var totalSlides = slick.slideCount;
289
290    // Calculate the total number of scroll steps (not individual slides)
291    var totalSteps = Math.ceil((totalSlides - slidesToShow) / slidesToScroll) + 1;
292    var currentStep = Math.ceil(nextSlide / slidesToScroll) + 1;
293
294    // Ensure the progress is accurate and reaches 100% only at the final step
295    var calc = (currentStep / totalSteps) * 100;
296
297    $scprogressBar
298        .css("background-size", calc + "% 100%")
299        .attr("aria-valuenow", calc);
300
301    $progressBarLabel.text(calc.toFixed(0) + "% completed");
302
303    console.log(`Current Step: ${currentStep}, Total Steps: ${totalSteps}, Progress: ${calc}%`);
304});
305
306// Slick init function
307function wowSlickInit($selector, settings, animateOut = false) {
308    $($selector).slick(settings);
309}
310
311  /*----------------------------
312          Testimonial Slider One
313      * --------------------------*/
314  function activeTestimonialSliderOne($scope) {
315    var el = $scope.find(".testimonial-slider");
316    var elSettings = el.data("settings");
317    if (
318      el.children("div").length < 2 ||
319      elSettings.items === "0" ||
320      elSettings.items === "" ||
321      typeof elSettings.items == "undefined"
322    ) {
323      return;
324    }
325
326    let $selector = "#" + el.attr("id");
327
328    let sliderSettings = {
329      infinite: elSettings.loop === "yes",
330      slidesToShow: elSettings.items,
331      slidesToScroll: 1,
332      arrows: true,
333      nextArrow:
334        '<button class="slide-arrow prev-arrow"><i class="fa fa-angle-right"></i></button>',
335      dots: elSettings.dot === "yes",
336      appendDots: $scope.find(".slick-carousel-controls .slider-dots"),
337      autoplaySpeed: elSettings.autoplaytimeout,
338      autoplay: elSettings.autoplay === "yes",
339      centerMode: elSettings.center === "yes",
340      centerPadding: "0",
341      cssEase: "linear",
342      responsive: [
343        {
344          breakpoint: 1024,
345          settings: {
346            slidesToShow: 2,
347            slidesToScroll: 1,
348          },
349        },
350        {
351          breakpoint: 600,
352          settings: {
353            slidesToShow: 2,
354            slidesToScroll: 2,
355          },
356        },
357        {
358          breakpoint: 500,
359          settings: {
360            slidesToShow: 2,
361            slidesToScroll: 1,
362          },
363        },
364      ],
365    };
366    wowSlickInit($selector, sliderSettings);
367  }
368
369  /*----------------------------
370        Airport Slider One
371    * --------------------------*/
372  function activeAirportSliderOne($scope) {
373    var el = $scope.find(".airport-slider");
374    // console.log("Test: ", el);
375
376    var elSettings = el.data("settings");
377
378    // if (
379    //   el.children("div").length < 2 ||
380    //   elSettings.items === "0" ||
381    //   elSettings.items === "" ||
382    //   typeof elSettings.items == "undefined"
383    // ) {
384    //   return;
385    // }
386
387    let $selector = "#" + el.attr("id");
388
389    let sliderSettings = {
390      infinite: elSettings.loop === "yes",
391      slidesToShow: 1, // elSettings.items,
392      slidesToScroll: 1,
393      arrows: false,
394      dots: true,
395      responsive: [
396        {
397          breakpoint: 1024,
398          settings: {
399            slidesToShow: 1,
400            slidesToScroll: 1,
401          },
402        },
403        {
404          breakpoint: 600,
405          settings: {
406            slidesToShow: 1,
407            slidesToScroll: 1,
408          },
409        },
410        {
411          breakpoint: 480,
412          settings: {
413            slidesToShow: 1,
414            slidesToScroll: 1,
415          },
416        },
417      ],
418    };
419    wowSlickInit($selector, sliderSettings);
420  }
421
422  /*----------------------------
423          Testimonial Slider Two
424      * --------------------------*/
425  function activeTestimonialSliderTwo($scope) {
426    var el = $scope.find(".testimonial-slider");
427    var elSettings = el.data("settings");
428    if (
429      el.children("div").length < 2 ||
430      elSettings.items === "0" ||
431      elSettings.items === "" ||
432      typeof elSettings.items == "undefined"
433    ) {
434      return;
435    }
436
437    let $selector = "#" + el.attr("id");
438
439    let sliderSettings = {
440      infinite: elSettings.loop === "yes",
441      slidesToShow: elSettings.items,
442      slidesToScroll: 1,
443      arrows: elSettings.nav === "yes",
444      dots: elSettings.dot === "yes",
445      appendArrows: $scope.find(".slick-carousel-controls .slider-nav"),
446      appendDots: $scope.find(".slick-carousel-controls .slider-dots"),
447      prevArrow:
448        '<div class="prev-arrow testimonial-1-prev-icon">' +
449        elSettings.navleft +
450        "</div>",
451      nextArrow:
452        '<div class="next-arrow testimonial-1-next-icon">' +
453        elSettings.navright +
454        "</div>",
455      autoplaySpeed: elSettings.autoplaytimeout,
456      autoplay: elSettings.autoplay === "yes",
457      centerMode: elSettings.center === "yes",
458      centerPadding: "0",
459      cssEase: "linear",
460      responsive: [
461        {
462          breakpoint: 1024,
463          settings: {
464            slidesToShow: 2,
465            slidesToScroll: 1,
466          },
467        },
468        {
469          breakpoint: 991,
470          settings: {
471            slidesToShow: 1,
472            slidesToScroll: 1,
473          },
474        },
475        {
476          breakpoint: 480,
477          settings: {
478            slidesToShow: 1,
479            slidesToScroll: 1,
480          },
481        },
482      ],
483    };
484    wowSlickInit($selector, sliderSettings);
485  }
486
487  /*----------------------------
488          Service Slider One
489      * --------------------------*/
490  function activeServiceSliderOne($scope) {
491    var el = $scope.find(".service-slider2");
492    var elSettings = el.data("settings");
493    if (
494      el.children("div").length < 2 ||
495      elSettings.items === "0" ||
496      elSettings.items === "" ||
497      typeof elSettings.items == "undefined"
498    ) {
499      return;
500    }
501    let $selector = "#" + el.attr("id");
502    let sliderSettings = {
503      infinite: elSettings.loop === "yes",
504      slidesToShow: elSettings.items,
505      slidesToScroll: 1,
506      arrows: elSettings.nav === "yes",
507      dots: elSettings.dot === "yes",
508      appendArrows: $scope.find(".slick-carousel-controls"),
509      appendDots: $scope.find(".slick-carousel-controls"),
510      prevArrow: '<div class="prev-arrow">' + elSettings.navleft + "</div>",
511      nextArrow: '<div class="next-arrow">' + elSettings.navright + "</div>",
512      autoplaySpeed: elSettings.autoplaytimeout,
513      autoplay: elSettings.autoplay === "yes",
514      centerMode: elSettings.center === "yes",
515      centerPadding: "0",
516      cssEase: "linear",
517      responsive: [
518        {
519          breakpoint: 1024,
520          settings: {
521            slidesToShow: 2,
522            slidesToScroll: 1,
523          },
524        },
525        {
526          breakpoint: 600,
527          settings: {
528            slidesToShow: 2,
529            slidesToScroll: 2,
530          },
531        },
532        {
533          breakpoint: 480,
534          settings: {
535            slidesToShow: 1,
536            slidesToScroll: 1,
537          },
538        },
539      ],
540    };
541    wowSlickInit($selector, sliderSettings);
542  }
543
544  /*----------------------------
545          Team Slider One
546      * --------------------------*/
547  function activeTeamSliderOne($scope) {
548    var el = $scope.find(".team-carousel");
549    var elSettings = el.data("settings");
550    if (
551      el.children("div").length < 2 ||
552      elSettings.items === "0" ||
553      elSettings.items === "" ||
554      typeof elSettings.items == "undefined"
555    ) {
556      return;
557    }
558    let $selector = "#" + el.attr("id");
559    let sliderSettings = {
560      infinite: elSettings.loop === "yes",
561      slidesToShow: elSettings.items,
562      slidesToScroll: 1,
563      arrows: elSettings.nav === "yes",
564      dots: elSettings.dot === "yes",
565      appendArrows: $scope.find(".slick-carousel-controls"),
566      appendDots: $scope.find(".slick-carousel-controls"),
567      prevArrow: '<div class="prev-arrow">' + elSettings.navleft + "</div>",
568      nextArrow: '<div class="next-arrow">' + elSettings.navright + "</div>",
569      autoplaySpeed: elSettings.autoplaytimeout,
570      autoplay: elSettings.autoplay === "yes",
571      centerMode: elSettings.center === "yes",
572      centerPadding: "0",
573      cssEase: "linear",
574      responsive: [
575        {
576          breakpoint: 1024,
577          settings: {
578            slidesToShow: 2,
579            slidesToScroll: 1,
580          },
581        },
582        {
583          breakpoint: 600,
584          settings: {
585            slidesToShow: 2,
586            slidesToScroll: 2,
587          },
588        },
589        {
590          breakpoint: 480,
591          settings: {
592            slidesToShow: 1,
593            slidesToScroll: 1,
594          },
595        },
596      ],
597    };
598    wowSlickInit($selector, sliderSettings);
599  }
600
601  /*----------------------------
602          Team Slider Two
603      * --------------------------*/
604  function activeTeamSliderTwo($scope) {
605    var el = $scope.find(".team-slider2");
606    var elSettings = el.data("settings");
607    if (
608      el.children("div").length < 2 ||
609      elSettings.items === "0" ||
610      elSettings.items === "" ||
611      typeof elSettings.items == "undefined"
612    ) {
613      return;
614    }
615    let $selector = "#" + el.attr("id");
616    let sliderSettings = {
617      infinite: elSettings.loop === "yes",
618      slidesToShow: elSettings.items,
619      slidesToScroll: 1,
620      arrows: elSettings.nav === "yes",
621      dots: elSettings.dot === "yes",
622      appendArrows: $scope.find(".slick-carousel-controls"),
623      appendDots: $scope.find(".slick-carousel-controls"),
624      prevArrow: '<div class="prev-arrow">' + elSettings.navleft + "</div>",
625      nextArrow: '<div class="next-arrow">' + elSettings.navright + "</div>",
626      autoplaySpeed: elSettings.autoplaytimeout,
627      autoplay: elSettings.autoplay === "yes",
628      centerMode: elSettings.center === "yes",
629      centerPadding: "0",
630      cssEase: "linear",
631      responsive: [
632        {
633          breakpoint: 1024,
634          settings: {
635            slidesToShow: 2,
636            slidesToScroll: 1,
637          },
638        },
639        {
640          breakpoint: 600,
641          settings: {
642            slidesToShow: 2,
643            slidesToScroll: 2,
644          },
645        },
646        {
647          breakpoint: 480,
648          settings: {
649            slidesToShow: 1,
650            slidesToScroll: 1,
651          },
652        },
653      ],
654    };
655    wowSlickInit($selector, sliderSettings);
656  }
657
658  /*----------------------------
659          Blog Slider One
660      * --------------------------*/
661  function activeBlogSliderOne($scope) {
662    var el = $scope.find(".blog-slider");
663    var elSettings = el.data("settings");
664    if (
665      el.children("div").length < 2 ||
666      elSettings.items === "0" ||
667      elSettings.items === "" ||
668      typeof elSettings.items == "undefined"
669    ) {
670      return;
671    }
672    let $selector = "#" + el.attr("id");
673    let sliderSettings = {
674      infinite: elSettings.loop === "yes",
675      slidesToShow: elSettings.items,
676      slidesToScroll: 1,
677      arrows: elSettings.nav === "yes",
678      dots: elSettings.dot === "yes",
679      appendArrows: $scope.find(".slick-carousel-controls"),
680      appendDots: $scope.find(".slick-carousel-controls"),
681      prevArrow: '<div class="prev-arrow">' + elSettings.navleft + "</div>",
682      nextArrow: '<div class="next-arrow">' + elSettings.navright + "</div>",
683      autoplaySpeed: elSettings.autoplaytimeout,
684      autoplay: elSettings.autoplay === "yes",
685      centerMode: elSettings.center === "yes",
686      centerPadding: "0",
687      cssEase: "linear",
688      responsive: [
689        {
690          breakpoint: 1024,
691          settings: {
692            slidesToShow: 2,
693            slidesToScroll: 1,
694          },
695        },
696        {
697          breakpoint: 600,
698          settings: {
699            slidesToShow: 2,
700            slidesToScroll: 2,
701          },
702        },
703        {
704          breakpoint: 480,
705          settings: {
706            slidesToShow: 1,
707            slidesToScroll: 1,
708          },
709        },
710      ],
711    };
712    wowSlickInit($selector, sliderSettings);
713  }
714
715  //slick init function
716  function wowSlickInit($selector, settings, animateOut = false) {
717    $($selector).slick(settings);
718  }
719
720  /*----------- 07. Global Slider ----------*/
721  $(".global-carousel").each(function () {
722    var carouselSlide = $(this);
723
724    // Collect Data
725    function d(data) {
726      return carouselSlide.data(data);
727    }
728
729    // Custom Arrow Button
730    var prevButton =
731        '<button type="button" class="slick-prev"><i class="' +
732        d("prev-arrow") +
733        '"></i></button>',
734      nextButton =
735        '<button type="button" class="slick-next"><i class="' +
736        d("next-arrow") +
737        '"></i></button>';
738
739    // Function For Custom Arrow Btn
740    $("[data-slick-next]").each(function () {
741      $(this).on("click", function (e) {
742        e.preventDefault();
743        $($(this).data("slick-next")).slick("slickNext");
744      });
745    });
746
747    $("[data-slick-prev]").each(function () {
748      $(this).on("click", function (e) {
749        e.preventDefault();
750        $($(this).data("slick-prev")).slick("slickPrev");
751      });
752    });
753
754    // Check for arrow wrapper
755    if (d("arrows") == true) {
756      if (!carouselSlide.closest(".arrow-wrap").length) {
757        carouselSlide.closest(".container").parent().addClass("arrow-wrap");
758      }
759    }
760
761    carouselSlide.slick({
762      dots: d("dots") ? true : false,
763      fade: d("fade") ? true : false,
764      arrows: d("arrows") ? true : false,
765      speed: d("speed") ? d("speed") : 1000,
766      sliderNavfor: d("slidernavfor") ? d("slidernavfor") : false,
767      autoplay: d("autoplay") == false ? false : true,
768      infinite: d("infinite") == false ? false : true,
769      slidesToShow: d("slide-show") ? d("slide-show") : 1,
770      adaptiveHeight: d("adaptive-height") ? true : false,
771      centerMode: d("center-mode") ? true : false,
772      autoplaySpeed: d("autoplay-speed") ? d("autoplay-speed") : 8000,
773      centerPadding: d("center-padding") ? d("center-padding") : "0",
774      focusOnSelect: d("focuson-select") == false ? false : true,
775      pauseOnFocus: d("pauseon-focus") ? true : false,
776      pauseOnHover: d("pauseon-hover") ? true : false,
777      variableWidth: d("variable-width") ? true : false,
778      vertical: d("vertical") ? true : false,
779      verticalSwiping: d("vertical") ? true : false,
780      prevArrow: d("prev-arrow")
781        ? prevButton
782        : '<button type="button" class="slick-prev"><i class="fas fa-arrow-left"></i></button>',
783      nextArrow: d("next-arrow")
784        ? nextButton
785        : '<button type="button" class="slick-next"><i class="fas fa-arrow-right"></i></button>',
786      rtl: $("html").attr("dir") == "rtl" ? true : false,
787      responsive: [
788        {
789          breakpoint: 1600,
790          settings: {
791            arrows: d("xl-arrows") ? true : false,
792            dots: d("xl-dots") ? true : false,
793            slidesToShow: d("xl-slide-show")
794              ? d("xl-slide-show")
795              : d("slide-show"),
796            centerMode: d("xl-center-mode") ? true : false,
797            centerPadding: d("xl-center-padding")
798              ? d("xl-center-padding")
799              : "0",
800          },
801        },
802        {
803          breakpoint: 1400,
804          settings: {
805            arrows: d("ml-arrows") ? true : false,
806            dots: d("ml-dots") ? true : false,
807            slidesToShow: d("ml-slide-show")
808              ? d("ml-slide-show")
809              : d("slide-show"),
810            centerMode: d("ml-center-mode") ? true : false,
811            centerPadding: d("ml-center-padding")
812              ? d("ml-center-padding")
813              : "0",
814          },
815        },
816        {
817          breakpoint: 1200,
818          settings: {
819            arrows: d("lg-arrows") ? true : false,
820            dots: d("lg-dots") ? true : false,
821            slidesToShow: d("lg-slide-show")
822              ? d("lg-slide-show")
823              : d("slide-show"),
824            centerMode: d("lg-center-mode") ? d("lg-center-mode") : false,
825            centerPadding: d("lg-center-padding")
826              ? d("lg-center-padding")
827              : "0",
828          },
829        },
830        {
831          breakpoint: 992,
832          settings: {
833            arrows: d("md-arrows") ? true : false,
834            dots: d("md-dots") ? true : false,
835            slidesToShow: d("md-slide-show") ? d("md-slide-show") : 1,
836            centerMode: d("md-center-mode") ? d("md-center-mode") : false,
837            centerPadding: 0,
838          },
839        },
840        {
841          breakpoint: 768,
842          settings: {
843            arrows: d("sm-arrows") ? true : false,
844            dots: d("sm-dots") ? true : false,
845            slidesToShow: d("sm-slide-show") ? d("sm-slide-show") : 1,
846            centerMode: d("sm-center-mode") ? d("sm-center-mode") : false,
847            centerPadding: 0,
848          },
849        },
850        {
851          breakpoint: 576,
852          settings: {
853            arrows: d("xs-arrows") ? true : false,
854            dots: d("xs-dots") ? true : false,
855            slidesToShow: d("xs-slide-show") ? d("xs-slide-show") : 1,
856            centerMode: d("xs-center-mode") ? d("xs-center-mode") : false,
857            centerPadding: 0,
858          },
859        },
860        // You can unslick at a given breakpoint now by adding:
861        // settings: "unslick"
862        // instead of a settings object
863      ],
864    });
865  });
866
867  /*----------- 08. Custom Animaiton For Slider ----------*/
868  $("[data-ani-duration]").each(function () {
869    var durationTime = $(this).data("ani-duration");
870    $(this).css("animation-duration", durationTime);
871  });
872
873  $("[data-ani-delay]").each(function () {
874    var delayTime = $(this).data("ani-delay");
875    $(this).css("animation-delay", delayTime);
876  });
877
878  $("[data-ani]").each(function () {
879    var animaionName = $(this).data("ani");
880    $(this).addClass(animaionName);
881    $(".slick-current [data-ani]").addClass("slider-animated");
882  });
883
884  $(".global-carousel").on(
885    "afterChange",
886    function (event, slick, currentSlide, nextSlide) {
887      $(slick.$slides).find("[data-ani]").removeClass("slider-animated");
888      $(slick.$slides[currentSlide])
889        .find("[data-ani]")
890        .addClass("slider-animated");
891    }
892  );
893
894  /* -----------------------------------------
895          fact counter
896      ----------------------------------------- */
897  if ($(".counter").length) {
898    $(".counter").counterUp({
899      delay: 15,
900      time: 2000,
901    });
902  }
903
904  // Generate Title IDs for table of content click
905  jQuery(document).ready(function ($) {
906    // Select all heading elements (h2 to h6) within the entry-content class
907    $(
908      ".entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6"
909    ).each(function () {
910      var headingText = $(this).text(); // Get the text of the heading
911      var headingId = headingText
912        .toLowerCase()
913        .trim()
914        .replace(/[\?\.|,!;:'"()&%$#@*+=<>]/g, "") // Remove special characters
915        .trim()
916        .replace(/\s+/g, "-");
917
918      $(this).attr("id", headingId); // Assign the ID to the heading
919    });
920  });
921
922  // table of content click
923  $(
924    ".table-of-content-widget ul li .arrow-link-d, .table-of-content-list-item ul li .arrow-link-d"
925  ).on("click", function (e) {
926    // e.preventDefault();
927    var element = $(this).parent("li");
928    if (element.hasClass("show")) {
929      element.removeClass("show");
930      element.children("ul").slideUp(500);
931    } else {
932      element.siblings("li").removeClass("show");
933      element.addClass("show");
934      element.siblings("li").find("ul").slideUp(500);
935      element.children("ul").slideDown(500);
936    }
937  });
938
939  // navbar-click
940  $(".table-of-content-list-item .arrow-link-a").on("click", function (e) {
941    e.preventDefault();
942    var element = $(this).parent("li");
943    if (element.hasClass("show")) {
944      element.removeClass("show");
945      element.children("ul").slideUp(500);
946    } else {
947      element.siblings("li").removeClass("show");
948      element.addClass("show");
949      element.siblings("li").find("ul").slideUp(500);
950      element.children("ul").slideDown(500);
951    }
952  });
953
954  //location-card1
955  $(".location-card-1").on("mouseenter", function () {
956    var currentAttrValue = $(this).attr("href");
957    $(".map-content-area-1").addClass("active");
958  });
959  $(".location-card-1").on("mouseleave", function () {
960    $(".map-content-area-1").removeClass("active");
961  });
962
963  //location-card2
964  $(".location-card-2").on("mouseenter", function () {
965    var currentAttrValue = $(this).attr("href");
966    $(".map-content-area-2").addClass("active");
967  });
968  $(".location-card-2").on("mouseleave", function () {
969    $(".map-content-area-2").removeClass("active");
970  });
971
972  //location-card3
973  $(".location-card-3").on("mouseenter", function () {
974    var currentAttrValue = $(this).attr("href");
975    $(".map-content-area-3").addClass("active");
976  });
977  $(".location-card-3").on("mouseleave", function () {
978    $(".map-content-area-3").removeClass("active");
979  });
980
981  //location-card4
982  $(".location-card-4").on("mouseenter", function () {
983    var currentAttrValue = $(this).attr("href");
984    $(".map-content-area-4").addClass("active");
985  });
986  $(".location-card-4").on("mouseleave", function () {
987    $(".map-content-area-4").removeClass("active");
988  });
989
990  //location-card5
991  $(".location-card-5").on("mouseenter", function () {
992    var currentAttrValue = $(this).attr("href");
993    $(".map-content-area-5").addClass("active");
994  });
995  $(".location-card-5").on("mouseleave", function () {
996    $(".map-content-area-5").removeClass("active");
997  });
998
999  //location-card6
1000  $(".location-card-6").on("mouseenter", function () {
1001    var currentAttrValue = $(this).attr("href");
1002    $(".map-content-area-6").addClass("active");
1003  });
1004  $(".location-card-6").on("mouseleave", function () {
1005    $(".map-content-area-6").removeClass("active");
1006  });
1007
1008  // Call On Load
1009  if ($(".indicator-active").length) {
1010    $(".indicator-active").indicator();
1011  }
1012
1013  $(document).ready(function () {
1014    /*--------------------
1015              wow js init
1016          ---------------------*/
1017    new WOW().init();
1018
1019    /*---------------------------------
1020     * Magnific Popup
1021     * --------------------------------*/
1022    $(
1023      ".video-play-btn, .video-play-btn-02, .video-play-btn-hover, .play-video-btn, .button-video"
1024    ).magnificPopup({
1025      type: "video",
1026      removalDelay: 400,
1027      preloader: false,
1028    });
1029    // Nice select
1030    // $("select").niceSelect();
1031  });
1032})(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.