1( function( $ ) { 2 'use strict'; 3 4 /* Check rtl isotope*/ 5 function rtl_isotop() { 6 if ( $( 'body' ).hasClass( 'rtl' ) ) { 7 return false; 8 } else { 9 return true; 10 } 11 }; 12 13 /* -------------------------------------------------- 14 * counter 15 * --------------------------------------------------*/ 16 var icounter = function () { 17 $('.ot-counter[data-counter]').each( function () { 18 var scrollTop = $(document).scrollTop() + $(window).height(); 19 var counter = $(this).find('span.num'), 20 countTo = counter.attr('data-to'), 21 during = parseInt( counter.attr('data-time') ); 22 23 if ( scrollTop > counter.offset().top + counter.height() ) { 24 $(this).removeAttr('data-counter'); 25 $({ 26 countNum: counter.text() 27 }).animate({ 28 countNum: countTo 29 }, 30 { 31 duration: during, 32 easing: 'swing', 33 step: function() { 34 counter.text(Math.floor(this.countNum)); 35 }, 36 complete: function() { 37 counter.text(this.countNum); 38 } 39 }); 40 } 41 }); 42 }; 43 44 var counter = function () { 45 icounter(); 46 }; 47 48 /* -------------------------------------------------- 49 * testimonials 50 * --------------------------------------------------*/ 51 var testimonialSlider = function ($scope, $) { 52 $scope.find('.ot-testimonials-slider-s1').each( function () { 53 var swiperContainer = $(this), 54 sliderSettings = swiperContainer.data('slider_options'); 55 56 var config = { 57 slidesPerView: 1, 58 spaceBetween: 30, 59 loop: true, 60 speed: 800, 61 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 62 pagination: { 63 el: swiperContainer.find('.octf-swiper-pagination'), 64 clickable: true, 65 }, 66 navigation: { 67 nextEl: swiperContainer.find('.octf-swiper-button-next'), 68 prevEl: swiperContainer.find('.octf-swiper-button-prev'), 69 }, 70 breakpoints: { 71 360: { 72 slidesPerView: parseInt(sliderSettings.slides_show_mobile), 73 slidesPerGroup: parseInt(sliderSettings.slides_scroll_mobile), 74 }, 75 768: { 76 slidesPerView: parseInt(sliderSettings.slides_show_tablet), 77 slidesPerGroup: parseInt(sliderSettings.slides_scroll_tablet), 78 }, 79 1024: { 80 slidesPerView: parseInt(sliderSettings.slides_show_desktop), 81 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 82 }, 83 } 84 } 85 // if ( window.elementorFrontend ) { 86 // if ( window.elementorFrontend.isEditMode() ) { 87 // OTInitSwiper( swiperContainer, config ); 88 // } else { 89 // elementorFrontend.on('components:init', () => { 90 // OTInitSwiper( swiperContainer, config ); 91 // }); 92 // } 93 // } else { 94 // OTInitSwiper( swiperContainer, config ); 95 // } 96 OTInitSwiper( swiperContainer, config ); 97 }); 98 }; 99 100 /* -------------------------------------------------- 101 * testimonials 2 102 * --------------------------------------------------*/ 103 var testimonialSlider2 = function ($scope, $) { 104 $scope.find('.ot-testimonials-slider-s2').each( function () { 105 var swiperContainer = $(this), 106 sliderSettings = swiperContainer.data('slider_options'), 107 speed = swiperContainer.data('effect') == 'fade' ? 0 : 800; 108 109 var config = { 110 slidesPerView: 1, 111 spaceBetween: 30, 112 loop: true, 113 speed: speed, 114 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 115 effect: swiperContainer.data('effect'), 116 fadeEffect: { 117 crossFade: true 118 }, 119 pagination: {
120 el: swiperContainer.find('.octf-swiper-pagination'), 121 clickable: true 122 }, 123 navigation: { 124 nextEl: swiperContainer.find('.octf-swiper-button-next'), 125 prevEl: swiperContainer.find('.octf-swiper-button-prev') 126 }, 127 breakpoints: { 128 360: { 129 slidesPerView: parseInt(sliderSettings.slides_show_mobile), 130 slidesPerGroup: parseInt(sliderSettings.slides_scroll_mobile) 131 }, 132 768: { 133 slidesPerView: parseInt(sliderSettings.slides_show_tablet), 134 slidesPerGroup: parseInt(sliderSettings.slides_scroll_tablet) 135 }, 136 1024: { 137 slidesPerView: parseInt(sliderSettings.slides_show_desktop), 138 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop) 139 }, 140 } 141 } 142 /*Swiper Init*/ 143 OTInitSwiper( swiperContainer, config ); 144 }); 145 }; 146 147 /* -------------------------------------------------- 148 * testimonials 3 149 * --------------------------------------------------*/ 150 var testimonialSlider3 = function ($scope, $) { 151 $scope.find('.ot-testimonials-slider-s3').each( function () { 152 var swiperContainer = $(this), 153 sliderSettings = swiperContainer.data('slider_options'); 154 155 var config = { 156 slidesPerView: 1, 157 spaceBetween: 30, 158 loop: true, 159 speed: 800, 160 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 161 effect: swiperContainer.data('effect'), 162 fadeEffect: { 163 crossFade: true, 164 }, 165 pagination: { 166 el: swiperContainer.find('.octf-swiper-pagination'), 167 clickable: true, 168 }, 169 navigation: { 170 nextEl: swiperContainer.find('.octf-swiper-button-next'), 171 prevEl: swiperContainer.find('.octf-swiper-button-prev'), 172 }, 173 breakpoints: { 174 360: { 175 slidesPerView: parseInt(sliderSettings.slides_show_mobile), 176 slidesPerGroup: parseInt(sliderSettings.slides_scroll_mobile), 177 }, 178 768: { 179 slidesPerView: parseInt(sliderSettings.slides_show_tablet), 180 slidesPerGroup: parseInt(sliderSettings.slides_scroll_tablet), 181 }, 182 1024: { 183 slidesPerView: parseInt(sliderSettings.slides_show_desktop), 184 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 185 }, 186 } 187 } 188 189 /*Swiper Init*/ 190 OTInitSwiper( swiperContainer, config ); 191 }); 192 }; 193 194 /* -------------------------------------------------- 195 * Image Carousel 196 * --------------------------------------------------*/ 197 var imageCarousel = function ($scope, $) { 198 $scope.find('.image-carousel').each( function () { 199 var swiperContainer = $(this), 200 sliderSettings = swiperContainer.data('slider_options'); 201 202 var config = { 203 slidesPerView: 1, 204 spaceBetween: parseInt(sliderSettings.margin_desktop), 205 loop: true, 206 speed: 800, 207 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 208 autoplay: { 209 delay: 6000, 210 disableOnInteraction: false, 211 }, 212 pagination: { 213 el: swiperContainer.find('.octf-swiper-pagination'), 214 clickable: true, 215 }, 216 navigation: {
217 nextEl: swiperContainer.find('.octf-swiper-button-next'), 218 prevEl: swiperContainer.find('.octf-swiper-button-prev'), 219 }, 220 breakpoints: { 221 360: { 222 slidesPerView: parseInt(sliderSettings.slides_show_mobile), 223 slidesPerGroup: parseInt(sliderSettings.slides_scroll_mobile), 224 spaceBetween: parseInt(sliderSettings.margin_mobile), 225 }, 226 768: { 227 slidesPerView: parseInt(sliderSettings.slides_show_tablet), 228 slidesPerGroup: parseInt(sliderSettings.slides_scroll_tablet), 229 spaceBetween: parseInt(sliderSettings.margin_tablet), 230 }, 231 1024: { 232 slidesPerView: parseInt(sliderSettings.slides_show_desktop), 233 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 234 spaceBetween: parseInt(sliderSettings.margin_desktop), 235 }, 236 } 237 } 238 239 /*Swiper Init*/ 240 OTInitSwiper( swiperContainer, config ); 241 }); 242 }; 243 244 /* -------------------------------------------------- 245 * team carousel 246 * --------------------------------------------------*/ 247 var teamCarousel = function ($scope, $) { 248 $scope.find('.team-slider').each( function () { 249 var swiperContainer = $(this), 250 sliderSettings = swiperContainer.data('slider_options'); 251 252 var config = { 253 slidesPerView: 1, 254 spaceBetween: parseInt(sliderSettings.margin_desktop), 255 loop: true, 256 speed: 800, 257 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 258 pagination: { 259 el: swiperContainer.find('.octf-swiper-pagination'), 260 clickable: true, 261 }, 262 navigation: { 263 nextEl: swiperContainer.find('.octf-swiper-button-next'), 264 prevEl: swiperContainer.find('.octf-swiper-button-prev'), 265 }, 266 breakpoints: { 267 360: { 268 slidesPerView: parseInt(sliderSettings.slides_show_mobile), 269 slidesPerGroup: parseInt(sliderSettings.slides_scroll_mobile), 270 }, 271 768: { 272 slidesPerView: parseInt(sliderSettings.slides_show_tablet), 273 slidesPerGroup: parseInt(sliderSettings.slides_scroll_tablet), 274 }, 275 1024: { 276 slidesPerView: parseInt(sliderSettings.slides_show_desktop), 277 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 278 }, 279 } 280 } 281 282 /*Swiper Init*/ 283 OTInitSwiper( swiperContainer, config ); 284 }); 285 }; 286 287 /* -------------------------------------------------- 288 * blog carousel 289 * --------------------------------------------------*/ 290 var blogCarousel = function ($scope, $) { 291 $scope.find('.blog-slider').each( function () { 292 var swiperContainer = $(this), 293 sliderSettings = swiperContainer.data('slider_options'); 294 295 var config = { 296 slidesPerView: 1, 297 spaceBetween: parseInt(sliderSettings.margin_desktop), 298 loop: false, 299 speed: 800, 300 watchOverflow: true, 301 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 302 pagination: { 303 el: swiperContainer.find('.octf-swiper-pagination'), 304 clickable: true, 305 }, 306 navigation: {
307 nextEl: swiperContainer.find('.octf-swiper-button-next'), 308 prevEl: swiperContainer.find('.octf-swiper-button-prev'), 309 }, 310 breakpoints: { 311 360: { 312 slidesPerView: parseInt(sliderSettings.slides_show_mobile), 313 slidesPerGroup: parseInt(sliderSettings.slides_scroll_mobile), 314 spaceBetween: parseInt(sliderSettings.margin_mobile), 315 }, 316 768: { 317 slidesPerView: parseInt(sliderSettings.slides_show_tablet), 318 slidesPerGroup: parseInt(sliderSettings.slides_scroll_tablet), 319 spaceBetween: parseInt(sliderSettings.margin_tablet), 320 }, 321 1024: { 322 slidesPerView: parseInt(sliderSettings.slides_show_desktop), 323 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 324 spaceBetween: parseInt(sliderSettings.margin_desktop), 325 }, 326 } 327 } 328 329 /*Swiper Init*/ 330 OTInitSwiper( swiperContainer, config ); 331 }); 332 }; 333 334 /* -------------------------------------------------- 335 * project carousel 336 * --------------------------------------------------*/ 337 var latestProjectCarousel = function ($scope, $) { 338 $scope.find('.project-slider').each( function () { 339 var swiperContainer = $(this), 340 sliderSettings = swiperContainer.data('slider_options'); 341 342 var config = { 343 slidesPerView: parseInt(sliderSettings.slides_show_desktop), 344 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 345 loop: false, 346 watchOverflow: true, 347 autoplay: { 348 delay: 6000, 349 disableOnInteraction: false, 350 }, 351 speed: 800, 352 spaceBetween: parseInt(sliderSettings.margin_desktop), 353 pagination: { 354 el: swiperContainer.find('.octf-swiper-pagination'), 355 clickable: true, 356 }, 357 navigation: { 358 nextEl: swiperContainer.find('.octf-swiper-button-next'), 359 prevEl: swiperContainer.find('.octf-swiper-button-prev'), 360 }, 361 breakpoints: { 362 360: { 363 slidesPerView: parseInt(sliderSettings.slides_show_mobile), 364 slidesPerGroup: parseInt(sliderSettings.slides_scroll_mobile), 365 spaceBetween: parseInt(sliderSettings.margin_mobile), 366 }, 367 768: { 368 slidesPerView: parseInt(sliderSettings.slides_show_tablet), 369 slidesPerGroup: parseInt(sliderSettings.slides_scroll_tablet), 370 spaceBetween: parseInt(sliderSettings.margin_tablet), 371 }, 372 1024: { 373 slidesPerView: parseInt(sliderSettings.slides_show_desktop), 374 slidesPerGroup: parseInt(sliderSettings.slides_scroll_desktop), 375 spaceBetween: parseInt(sliderSettings.margin_desktop), 376 }, 377 } 378 } 379 380 /*Swiper Init*/ 381 OTInitSwiper( swiperContainer, config ); 382 }); 383 }; 384 385 function OTInitSwiper(swiperContainer, config, elementorFrontend = false) { 386 if ( 'undefined' === typeof Swiper ) { 387 const asyncSwiper = window.elementorFrontend.utils.swiper; 388 new asyncSwiper( swiperContainer, config ).then( ( newSwiperInstance ) => { 389 var mySwiper = newSwiperInstance; 390 }); 391 } else { 392 var mySwiper = new Swiper( swiperContainer, config ); 393 } 394 } 395 396 /* -------------------------------------------------- 397 * accordions 398 * --------------------------------------------------*/ 399 var customAccordions = function ($scope, $) { 400 $scope.find('.ot-accordions').each( function () { 401 var selector = $(this), 402 content = selector.find('.acc-content'), 403 header = selector.find('.acc-toggle'); 404 405 header.off("click"); 406 407 header.each(function(){ 408 if ($(this).data('default') == 'yes') { 409 $(this).next().addClass('active').slideDown(300); 410 $(this).parent().addClass('current'); 411 } 412 }); 413 414 header.on('click', function(e){
415 e.preventDefault(); 416 var $this = $(this); 417 418 $this.next().toggleClass('active').slideToggle(300); 419 $this.parent().toggleClass('current'); 420 content.not($this.next()).slideUp(300); 421 header.not($this).parent().removeClass('current'); 422 }); 423 }); 424 }; 425 426 /* -------------------------------------------------- 427 * tabs 428 * --------------------------------------------------*/ 429 var customTabs = function ($scope, $) { 430 431 $scope.find('.ot-tabs').each(function() { 432 var selector = $(this), 433 tabs = selector.find('.tabs-heading li'), 434 content = selector.find('.tab-content'); 435 tabs.first().addClass('current'); 436 content.first().addClass('current'); 437 438 tabs.on( 'click', function(){ 439 var tab_id = $(this).attr('data-tab'); 440 $(this).siblings().removeClass('current'); 441 $(this).parents('.ot-tabs').find('.tab-content').removeClass('current'); 442 $(this).addClass('current'); 443 $("#"+tab_id).addClass('current'); 444 }); 445 }); 446 447 448 }; 449 450 /* -------------------------------------------------- 451 * Process 452 * --------------------------------------------------*/ 453 var processTabs = function ($scope, $) { 454 $scope.find('.ot-process[data-tab]').each(function(){ 455 var selector = $(this); 456 selector.find('.process_nav li').first().addClass('current'); 457 selector.find('.process-des div.process-des-item').hide(); 458 selector.find('.process-des div.process-des-item').first().show(); 459 selector.find('.process_nav li').on( 'click', function(){ 460 $(this).parent().find('li').removeClass('current'); 461 $(this).addClass('current'); 462 $(this).parents('.ot-process').find('.process-des div.process-des-item').hide(); 463 464 var index = $(this).index(); 465 $(this).parents('.ot-process').find('.process-des div.process-des-item:eq(' + index + ')').fadeIn(300); 466 }); 467 }); 468 }; 469 470 /* -------------------------------------------------- 471 * progress bar 472 * --------------------------------------------------*/ 473 function lineProgress() { 474 $('.ot-progress:not([data-processed])').each(function() { 475 var bar = $(this), 476 line = bar.find(".progress-bar"), 477 progressEnd = bar.data('percent'), 478 percent = bar.find('.ppercent'); 479 var scrollTop = $(document).scrollTop() + $(window).height(); 480 481 if ( scrollTop > bar.offset().top + bar.height() ) { 482 bar.attr("data-processed", "true"); 483 line.css("width", (bar.outerWidth() * (progressEnd / 100)) + "px"); 484 485 for (var i = 0; i <= 50; i++) { 486 (function (count) { 487 setTimeout(function () { 488 percent.html(Math.round((progressEnd / 50) * count) + "%"); 489 }, 30 * count); 490 })(i); 491 } 492 } 493 }); 494 }; 495 496 /* ## Progress bar size */ 497 498 function lineProgressSize() { 499 $('.ot-progress[data-processed]').each(function () { 500 var bar = $(this); 501 var line = bar.find(".progress-bar"); 502 var progressEnd = parseInt(bar.data('percent')); 503 504 line.css("width", (bar.outerWidth() * (progressEnd / 100)) + "px"); 505 506 }); 507 } 508 509 function circleProgress() { 510 $('.circle-progress:not([data-processed])').each(function() { 511 var circle = $(this), 512 bar_color = circle.data('color'), 513 bar_hei = circle.data('height'), 514 bar_size = circle.data('size'); 515 var scrollTop = $(document).scrollTop() + $(window).height(); 516 if ( scrollTop > circle.offset().top + circle.height() ) { 517 circle.attr("data-processed", "true"); 518 circle.find('.inner-bar').easyPieChart({ 519 barColor: bar_color, 520 trackColor: false, 521 scaleColor: false, 522 lineCap: 'square', 523 lineWidth: bar_hei, 524 size: bar_size, 525 animate: 1000, 526 onStart: $.noop, 527 onStop: $.noop, 528 /*easing: 'easeInOut',*/ 529 onStep: function(from, to, percent) { 530 $(this.el).find('.percent').text(Math.round(percent) + '%'); 531 } 532 }); 533 } 534 }); 535 }; 536 537 var progressBar = function () { 538 lineProgress(); 539 circleProgress(); 540 }; 541 542 /* -------------------------------------------------- 543 * message box 544 * --------------------------------------------------*/ 545 var messageBox = function($scope, $){ 546 $scope.find('.message-box').each( function(){ 547 var selector = $(this), 548 close = selector.find('>i'); 549 close.on('click', function() { 550 $scope.fadeOut(); 551 }); 552 }); 553 }; 554 555 /* -------------------------------------------------- 556 * post grid isotope 557 * --------------------------------------------------*/ 558 var postGrid = function ($scope, $) { 559 $('.blog-grid').each( function(){ 560 var container = $(this); 561 container.isotope({ 562 itemSelector : '.masonry-post-item', 563 isOriginLeft: rtl_isotop(), 564 percentPosition: true, 565 }); 566 }); 567 }; 568 569 /* -------------------------------------------------- 570 * projects filter isotope 571 * --------------------------------------------------*/ 572 var projectsFilter = function () { 573 function updateFilter() { 574 $('.project_filters a').each(function() { 575 var data_filter = this.getAttribute('data-filter'); 576 var num = $(this) 577 .closest('.project-filter-wrapper') 578 .find('.project-item') 579 .filter(data_filter).length; 580 $(this) 581 .find('.filter-count') 582 .text( num ); 583 }); 584 } 585 $('.projects-grid:not(.project-slider)').each( function(){ 586 var $container = $(this); 587 $container.isotope({ 588 itemSelector : '.project-item', 589 isOriginLeft: rtl_isotop(), 590 animationEngine : 'css', 591 masonry: { 592 columnWidth: '.grid-sizer' 593 }, 594 layoutMode: 'fitRows', 595 }); 596 597 var $optionSets = $(this).closest('.project-filter-wrapper').find('.project_filters'), 598 $optionLinks = $optionSets.find('a'); 599 600 $optionLinks.on('click', function(){ 601 var $this = $(this); 602 603 if ( $this.hasClass('selected') ) { 604 return false; 605 } 606 var $optionSet = $this.parents('.project_filters'); 607 $optionSet.find('.selected').removeClass('selected'); 608 $this.addClass('selected'); 609 610 var selector = $(this).attr('data-filter'); 611 $container.isotope({ 612 filter: selector 613 }); 614 return false; 615 }); 616 /* popup gallery */ 617 if( $container.hasClass('img-popup') ){ 618 if( $container.hasClass('style-6') ){ 619 var all_links = document.querySelectorAll('h5 a.title-link'); 620 for(var i=0; i<all_links.length; i++){ 621 all_links[i].removeAttribute("href"); 622 } 623 } 624 $('.img-popup').lightGallery({
625 selector: '.style-3 .projects-thumbnail, .style-4 .projects-thumbnail, .style-6 h5 a', 626 share: false, 627 pager: false, 628 thumbnail: false 629 }); 630 } 631 /* count filters */ 632 updateFilter(); 633 }); 634 }; 635 636 /* -------------------------------------------------- 637 * image gallery 638 * --------------------------------------------------*/ 639 var imageGallery = function ($scope, $) { 640 $scope.find('.image-gallery').each( function(){ 641 var selector = $(this), 642 popup = selector.find('.gallery-icon > a'); 643 popup.append('<span class="overlay"><i class="ot-flaticon-add"></i></span>'); 644 selector.lightGallery({ 645 selector: popup, 646 share: false, 647 pager: false, 648 }); 649 }); 650 }; 651 652 /* -------------------------------------------------- 653 * video popup 654 * --------------------------------------------------*/ 655 var videoPopup = function ($scope, $) { 656 $scope.find('.video-popup').each( function(){ 657 var selector = $(this), 658 videoItem = selector.find('>div'); 659 selector.lightGallery({ 660 selector: videoItem, 661 }); 662 }); 663 }; 664 665 /* -------------------------------------------------- 666 * image service box popup 667 * --------------------------------------------------*/ 668 var imageServiceBox = function ($scope, $) { 669 $scope.find('.service-box').each( function(){ 670 var selector = $(this), 671 imgPopup = selector.find('.image-box > div'); 672 selector.lightGallery({ 673 selector: imgPopup, 674 share: false, 675 pager: false, 676 }); 677 }); 678 }; 679 680 /* -------------------------------------------------- 681 * coming soon 682 * --------------------------------------------------*/ 683 var countDown = function($scope, $){ 684 $scope.find('.ot-countdown').each( function(){ 685 var selector = $(this), 686 date = selector.data('date'), 687 zone = selector.data('zone'), 688 day = selector.data('day'), 689 days = selector.data('days'), 690 hour = selector.data('hour'), 691 hours = selector.data('hours'), 692 min = selector.data('min'), 693 mins = selector.data('mins'), 694 second = selector.data('second'), 695 seconds = selector.data('seconds'); 696 selector.countdown({ 697 date: date, 698 offset: zone, 699 day: day, 700 days: days, 701 hour: hour, 702 hours: hours, 703 minute: min, 704 minutes: mins, 705 second: second, 706 seconds: seconds 707 }, function () { 708 alert('Done!'); 709 }); 710 }); 711 }; 712 713 /* -------------------------------------------------- 714 * social team 715 * --------------------------------------------------*/ 716 var socialTeam = function( $scope, $ ){ 717 $scope.find('.team-wrap').each( function(){ 718 var selector = $(this).find('.team-social > span'); 719 selector.on('click', function(){ 720 $(this).parent().toggleClass('active'); 721 }); 722 }); 723 }; 724 725 /* -------------------------------------------------- 726 * Image Before After 727 * --------------------------------------------------*/ 728 var beforeAfter = function ( $scope , $ ) { 729 $scope.find('.twentytwenty-container').each( function(){ 730 var $selector = $(this), 731 orientation = $selector.data('orientation'), 732 before = $selector.data('before'), 733 after = $selector.data('after'), 734 before_size = $selector.data('bsize'); 735 $selector.twentytwenty({ 736 default_offset_pct: before_size, 737 orientation: orientation, 738 before_label: before, 739 after_label: after,
740 no_overlay: false, 741 move_slider_on_hover: false, 742 move_with_handle_only: true, 743 click_to_move: true, 744 }); 745 }); 746 }; 747 748 /* -------------------------------------------------- 749 * handle after scroll/load/resize 750 * --------------------------------------------------*/ 751 $(window).on('scroll', function() { 752 lineProgress(); 753 circleProgress(); 754 icounter(); 755 }); 756 $(window).on('load', function () { 757 lineProgress(); 758 circleProgress(); 759 icounter(); 760 }); 761 $(window).on('resize', function () { 762 lineProgressSize(); 763 }); 764 765 /** 766 * Elementor JS Hooks 767 */ 768 $(window).on("elementor/frontend/init", function () { 769 770 /*Counter*/ 771 elementorFrontend.hooks.addAction( 772 "frontend/element_ready/icounter.default", 773 counter 774 ); 775 776 /*Testimonials*/ 777 elementorFrontend.hooks.addAction( 778 "frontend/element_ready/itestimonials.default", 779 testimonialSlider 780 ); 781 782 /*Testimonials 2*/ 783 elementorFrontend.hooks.addAction( 784 "frontend/element_ready/itestimonials2.default", 785 testimonialSlider2 786 ); 787 788 /*Testimonials 3*/ 789 elementorFrontend.hooks.addAction( 790 "frontend/element_ready/itestimonials3.default", 791 testimonialSlider3 792 ); 793 794 /*Custom accordions*/ 795 elementorFrontend.hooks.addAction( 796 "frontend/element_ready/iaccordions.default", 797 customAccordions 798 ); 799 800 /*Custom tabs*/ 801 elementorFrontend.hooks.addAction( 802 "frontend/element_ready/itabs.default", 803 customTabs 804 ); 805 806 /*Process tabs*/ 807 elementorFrontend.hooks.addAction( 808 "frontend/element_ready/iprocessbox.default", 809 processTabs 810 ); 811 812 /*Progress bar*/ 813 elementorFrontend.hooks.addAction( 814 "frontend/element_ready/iprogress.default", 815 progressBar 816 ); 817 818 /*Image carousel*/ 819 elementorFrontend.hooks.addAction( 820 "frontend/element_ready/theratio-image-carousel.default", 821 imageCarousel 822 ); 823 824 /*Blog carousel*/ 825 elementorFrontend.hooks.addAction( 826 "frontend/element_ready/ipost_carousel.default", 827 blogCarousel 828 ); 829 830 /*Team carousel*/ 831 elementorFrontend.hooks.addAction( 832 "frontend/element_ready/imembercarousel.default", 833 teamCarousel 834 ); 835 elementorFrontend.hooks.addAction( 836 "frontend/element_ready/imembercarousel.default", 837 socialTeam 838 ); 839 840 /*Latest Project carousel*/ 841 elementorFrontend.hooks.addAction( 842 "frontend/element_ready/irprojects.default", 843 latestProjectCarousel 844 ); 845 846 /*Message box*/ 847 elementorFrontend.hooks.addAction( 848 "frontend/element_ready/imessagebox.default", 849 messageBox 850 ); 851 852 /*Post grid*/ 853 elementorFrontend.hooks.addAction( 854 "frontend/element_ready/ipost_grid.default", 855 postGrid 856 ); 857 858 /*projects filter isotope*/ 859 elementorFrontend.hooks.addAction( 860 "frontend/element_ready/ipfilter.default", 861 projectsFilter 862 ); 863 elementorFrontend.hooks.addAction( 864 "frontend/element_ready/ipfilter_metro.default", 865 projectsFilter 866 ); 867 868 /*gallery*/ 869 elementorFrontend.hooks.addAction( 870 "frontend/element_ready/igimages.default", 871 imageGallery 872 ); 873 874 /*video popup*/ 875 elementorFrontend.hooks.addAction( 876 "frontend/element_ready/ivideopopup.default", 877 videoPopup 878 ); 879 880 /*Service box*/ 881 elementorFrontend.hooks.addAction( 882 "frontend/element_ready/theratio-service-box.default", 883 imageServiceBox 884 ); 885 886 /*countdown*/ 887 elementorFrontend.hooks.addAction( 888 "frontend/element_ready/icountdown.default", 889 countDown 890 ); 891 892 /*Team*/ 893 elementorFrontend.hooks.addAction( 894 "frontend/element_ready/imember.default", 895 socialTeam 896 ); 897 898 /*Image Before After*/ 899 elementorFrontend.hooks.addAction( 900 "frontend/element_ready/ibeforeafter.default", 901 beforeAfter 902 ); 903 });
904 905} )( 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.