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.