PageSourceSearch

https://newyorkharborschoolpta.org/wp-content/plugins/charity-addo…/js/nacharity-elementor.js?ver=7.1.3

js newyorkharborschoolpta.org collected 2026-10-09 21:49:07 UTC 33,991 bytes, 928 lines download raw bytes

1/*
2Template Name: Charity Addon for Elementor
3Author: NicheAddon
4Version: 1.0.0
5Email: [email protected]
6*/
7
8(function($){
9'use strict';
10/*----- ELEMENTOR LOAD SWIPER CALL ---*/
11function SwiperSliderInit(slider_el){
12  //Atrakt Swiper Slider Script
13  let animEndEv = 'webkitAnimationEnd animationend';
14  let swipermw = (slider_el.hasClass('swiper-mousewheel')) ? true : false;
15  let swiperkb = (slider_el.hasClass('swiper-keyboard')) ? true : false;
16  let swipercentered = (slider_el.hasClass('swiper-center')) ? true : false;
17  let swiperautoplay = slider_el.data('autoplay');
18  let swiperinterval = slider_el.data('interval');
19  let swiperloop = slider_el.data('loop');
20  let swipermousedrag = slider_el.data('mousedrag');
21  let swipereffect = slider_el.data('effect');
22  let swiperclikable = slider_el.data('clickpage');
23  let swiperspeed = slider_el.data('speed');
24  let swiperinteraction = slider_el.data('interaction');
25
26  let swipersitems = ( slider_el.data('items') ) ? slider_el.data('items') : 1;
27  let swiperstabitems = ( slider_el.data('tab-items') ) ? slider_el.data('tab-items') : 1;
28  let swipersmobileitems = ( slider_el.data('mobile-items') ) ? slider_el.data('mobile-items') : 1;
29
30  //Atrakt Swiper Slides Script
31  let autoplay = swiperinterval;
32  
33  // Init elementor swiper
34  let Swiper = elementorFrontend.utils.swiper;
35  initSwiper();
36
37  async function initSwiper() {
38    let slidervar = await new Swiper( slider_el, {
39      autoplayDisableOnInteraction: swiperinteraction,
40      slidesPerView: swipersitems,
41      effect: swipereffect,
42      speed: swiperspeed,
43      loop: swiperloop,
44      paginationClickable: swiperclikable,
45      watchSlidesProgress: true,
46      autoplay: swiperautoplay,
47      simulateTouch: swipermousedrag,
48      breakpoints: {
49        // when window width is >= 320px
50        320: {
51          slidesPerView: swipersmobileitems,
52        },
53        // when window width is >= 480px
54        480: {
55          slidesPerView: swipersmobileitems,
56        },
57        // when window width is >= 640px
58        640: {
59          slidesPerView: swiperstabitems,
60        },
61        991: {
62          slidesPerView: swipersitems,
63        }
64      },      
65      pagination: {
66        el: '.swiper-pagination',
67        clickable: true,
68      },
69      navigation: {
70        nextEl: '.swiper-button-next',
71        prevEl: '.swiper-button-prev',
72      },
73      mousewheelControl: swipermw,
74      keyboardControl: swiperkb,
75    });
76    slidervar.on('slideChange', function (s) {
77      let currentSlide = $(slidervar.slides[slidervar.activeIndex]);
78      let elems = currentSlide.find('.animated')
79      elems.each(function() {
80        let $this = $(this);
81        let animationType = $this.data('animation');
82        $this.addClass(animationType, 100).on(animEndEv, function() {
83          $this.removeClass(animationType);
84        });
85      });
86    });
87  }   
88}
89
90/*----- ELEMENTOR LOAD FUNTION CALL ---*/
91
92$( window ).on( 'elementor/frontend/init', function() {
93	//Owl Carousel Slider Script
94	var owl_carousel = function(){
95		$('.owl-carousel').each( function() {
96	    var $carousel = $(this);
97	    var $items = ($carousel.data('items') !== undefined) ? $carousel.data('items') : 1;
98	    var $items_tablet = ($carousel.data('items-tablet') !== undefined) ? $carousel.data('items-tablet') : 1;
99	    var $items_mobile_landscape = ($carousel.data('items-mobile-landscape') !== undefined) ? $carousel.data('items-mobile-landscape') : 1;
100	    var $items_mobile_portrait = ($carousel.data('items-mobile-portrait') !== undefined) ? $carousel.data('items-mobile-portrait') : 1;
101	    $carousel.owlCarousel ({
102	      loop : ($carousel.data('loop') !== undefined) ? $carousel.data('loop') : true,
103	      items : $carousel.data('items'),
104	      margin : ($carousel.data('margin') !== undefined) ? $carousel.data('margin') : 0,
105	      dots : ($carousel.data('dots') !== undefined) ? $carousel.data('dots') : true,
106	      nav : ($carousel.data('nav') !== undefined) ? $carousel.data('nav') : false,
107	      navText : ["<div class='slider-no-current'><span class='current-no'></span><span class='total-no'></span></div><span class='current-monials'></span>", "<div class='slider-no-next'></div><span class='next-monials'></span>"],
108	      autoplay : ($carousel.data('autoplay') !== undefined) ? $carousel.data('autoplay') : false,
109	      autoplayTimeout : ($carousel.data('autoplay-timeout') !== undefined) ? $carousel.data('autoplay-timeout') : 5000,
110	      animateIn : ($carousel.data('animatein') !== undefined) ? $carousel.data('animatein') : false,
111	      animateOut : ($carousel.data('animateout') !== undefined) ? $carousel.data('animateout') : false,
112	      mouseDrag : ($carousel.data('mouse-drag') !== undefined) ? $carousel.data('mouse-drag') : true,
113	      autoWidth : ($carousel.data('auto-width') !== undefined) ? $carousel.data('auto-width') : false,
114	      autoHeight : ($carousel.data('auto-height') !== undefined) ? $carousel.data('auto-height') : false,
115	      center : ($carousel.data('center') !== undefined) ? $carousel.data('center') : false,
116	      responsiveClass: true,
117	      dotsEachNumber: true,
118	      smartSpeed: 600,
119	      autoplayHoverPause: true,
120	      responsive : {
121	        0 : {
122	          items : $items_mobile_portrait,
123	        },
124	        480 : {
125	          items : $items_mobile_landscape,
126	        },
127	        768 : {
128	          items : $items_tablet,
129	        },
130	        992 : {
131	          items : $items,
132	        }
133	      }
134	    });
135	    var totLength = $('.owl-dot', $carousel).length;
136	    $('.total-no', $carousel).html(totLength);
137	    $('.current-no', $carousel).html(totLength);
138	    $carousel.owlCarousel();
139	    $('.current-no', $carousel).html(1);
140	    $carousel.on('changed.owl.carousel', function(event) {
141	      var total_items = event.page.count;
142	      var currentNum = event.page.index + 1;
143	      $('.total-no', $carousel ).html(total_items);
144	      $('.current-no', $carousel).html(currentNum);
145	    });
146	  });
147	}; // end
148
149	var item_hover_class = function( selector ){
150		$(selector).on({
151		  mouseenter : function() {
152			$(this).addClass('nacep-hover');
153		  },
154		  mouseleave : function() {
155			$(this).removeClass('nacep-hover');
156		  }
157		});
158	};
159
160	var item_prev_class = function( selector ){
161		$(selector).on({
162		  mouseenter : function() {
163			$(this).prevAll(selector).addClass('process-done');
164			$(this).addClass('process-done');
165		  },
166		  mouseleave : function() {
167			$(this).prevAll(selector).removeClass('process-done');
168			$(this).removeClass('process-done');
169		  }
170		});
171	};
172
173	//Charity Addon for Elementor Blog
174	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_blog.default', function($scope, $){
175		item_hover_class('.nacep-news-item');
176    $('.nacep-item').matchHeight ({
177      property: 'height'
178    });
179	} );
180
181	//Charity Addon for Elementor Contact
182	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_contact.default', function($scope, $){
183		item_hover_class('.nacep-contact-item');
184	} );
185
186	//Charity Addon for Elementor Gallery
187	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_gallery.default', function($scope, $){
188		item_hover_class('.nacep-gallery-item');
189		$('.masonry-wrap').each(function(i, gridContainer) {
190      var $gridContainer = $(gridContainer);
191      var $grid = $gridContainer.find('.nacep-masonry').imagesLoaded(function() {
192        $grid.isotope ({
193          itemSelector: '.masonry-item',
194          layoutMode: 'packery',
195          percentPosition: true,
196          isFitWidth: true,
197        })
198      });
199      $gridContainer.find('.masonry-filters').on('click', 'li a', function() {
200        var filterValue = $(this).attr('data-filter');
201        $grid.isotope ({
202          filter: filterValue,
203        });
204      });
205    });
206    $('.masonry-filters').each( function( i, buttonGroup ) {
207      var $buttonGroup = $(buttonGroup);
208      $buttonGroup.on( 'click', 'li a', function() {
209        $buttonGroup.find('.active').removeClass('active');
210        $(this).addClass('active');
211      });
212    });
213	} );
214
215  //Charity Addon for Elementor History
216  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_history.default', function($scope, $){
217    // item_hover_class('.nacep-history-item');
218    owl_carousel();
219    $('.nacep-item').matchHeight ({
220      property: 'height'
221    });
222  } );
223
224	//Charity Addon for Elementor Process
225	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_process.default', function($scope, $){
226	  item_prev_class('.nacep-process-item');
227	} );
228
229	//Charity Addon for Elementor Services
230	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_services.default', function($scope, $){
231		item_hover_class('.nacep-service-item');
232	} );
233
234  //Charity Addon for Elementor Slider
235  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_slider.default', function($scope, $){
236    //Charity Swiper Slider Script
237    let slider_el = $scope.find(".swiper-slides");
238    SwiperSliderInit(slider_el);
239  } );
240
241	//Charity Addon for Elementor Team
242	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_team.default', function($scope, $){
243	  item_hover_class('.nacep-team-item');
244	} );
245
246	//Charity Addon for Elementor Testimonials
247	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_testimonials.default', function($scope, $){
248	  item_hover_class('.nacep-testimonial-item');
249		owl_carousel();
250	} );
251
252	//Charity Addon for Elementor Video Popup
253	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_video.default', function($scope, $){
254	  item_hover_class('.nacep-video-wrap');
255	} );
256
257	// Charity Addon for Elementor Countdown
258	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_countdown.default', function($scope, $){
259  	//Countdown Script
260    $('.nacep-countdown.static, .nacep-countdown.dynamic').each( function() {
261      var $countdown = $(this);
262      var date = $countdown.data("date");
263      var format = $countdown.data("format");
264      var count_format = format ? format : 'dHMS';
265      // Plural Labels
266      var years = $countdown.data("years");
267      var months = $countdown.data("months");
268      var weeks = $countdown.data("weeks");
269      var days = $countdown.data("days");
270      var hours = $countdown.data("hours");
271      var minutes = $countdown.data("minutes");
272      var seconds = $countdown.data("seconds");
273      // Singular Labels
274      var year = $countdown.data("year");
275      var month = $countdown.data("month");
276      var week = $countdown.data("week");
277      var day = $countdown.data("day");
278      var hour = $countdown.data("hour");
279      var minute = $countdown.data("minute");
280      var second = $countdown.data("second");
281
282      var austDay = new Date();
283      austDay = new Date(date);
284
285      $countdown.countdown({
286        until: austDay,
287        labels: [years,months,weeks,days,hours,minutes,seconds],
288        labels1: [year,month,week,day,hour,minute,second],
289        format: count_format,
290        padZeroes: true,
291      });
292    });
293
294    // Fake COuntdown Script
295    $('.nacep-countdown.fake').each( function() {
296      var $countdown = $(this);
297      var date = $countdown.data("date");
298      var today = new Date();
299      var newdate = new Date();
300      newdate.setDate(today.getDate() + date);
301      var mm = today.getMonth() + 1; //January is 0!
302      var yyyy = today.getFullYear();
303      today =  new Date(newdate);
304
305      // Plural Labels
306      var years = $countdown.data("years");
307      var months = $countdown.data("months");
308      var weeks = $countdown.data("weeks");
309      var days = $countdown.data("days");
310      var hours = $countdown.data("hours");
311      var minutes = $countdown.data("minutes");
312      var seconds = $countdown.data("seconds");
313      // Singular Labels
314      var year = $countdown.data("year");
315      var month = $countdown.data("month");
316      var week = $countdown.data("week");
317      var day = $countdown.data("day");
318      var hour = $countdown.data("hour");
319      var minute = $countdown.data("minute");
320      var second = $countdown.data("second");
321
322      $(this).countdown({
323        until: today,
324        labels: [years,months,weeks,days,hours,minutes,seconds],
325        labels1: [year,month,week,day,hour,minute,second],
326        padZeroes: true,
327      });
328    });
329	} );
330
331	// Charity Addon for Elementor Urgent Cause
332	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_urgent_cause.default', function($scope, $){
333  	//Countdown Script
334    $('.nacep-countdown.static, .nacep-countdown.dynamic').each( function() {
335      var $countdown = $(this);
336      var date = $countdown.data("date");
337      var format = $countdown.data("format");
338      var count_format = format ? format : 'dHMS';
339      // Plural Labels
340      var years = $countdown.data("years");
341      var months = $countdown.data("months");
342      var weeks = $countdown.data("weeks");
343      var days = $countdown.data("days");
344      var hours = $countdown.data("hours");
345      var minutes = $countdown.data("minutes");
346      var seconds = $countdown.data("seconds");
347      // Singular Labels
348      var year = $countdown.data("year");
349      var month = $countdown.data("month");
350      var week = $countdown.data("week");
351      var day = $countdown.data("day");
352      var hour = $countdown.data("hour");
353      var minute = $countdown.data("minute");
354      var second = $countdown.data("second");
355
356      var austDay = new Date();
357      austDay = new Date(date);
358
359      $countdown.countdown({
360        until: austDay,
361        labels: [years,months,weeks,days,hours,minutes,seconds],
362        labels1: [year,month,week,day,hour,minute,second],
363        format: count_format,
364        padZeroes: true,
365      });
366    });
367
368    // Fake COuntdown Script
369    $('.nacep-countdown.fake').each( function() {
370      var $countdown = $(this);
371      var date = $countdown.data("date");
372      var today = new Date();
373      var newdate = new Date();
374      newdate.setDate(today.getDate() + date);
375      var mm = today.getMonth() + 1; //January is 0!
376      var yyyy = today.getFullYear();
377      today =  new Date(newdate);
378
379      // Plural Labels
380      var years = $countdown.data("years");
381      var months = $countdown.data("months");
382      var weeks = $countdown.data("weeks");
383      var days = $countdown.data("days");
384      var hours = $countdown.data("hours");
385      var minutes = $countdown.data("minutes");
386      var seconds = $countdown.data("seconds");
387      // Singular Labels
388      var year = $countdown.data("year");
389      var month = $countdown.data("month");
390      var week = $countdown.data("week");
391      var day = $countdown.data("day");
392      var hour = $countdown.data("hour");
393      var minute = $countdown.data("minute");
394      var second = $countdown.data("second");
395
396      $(this).countdown({
397        until: today,
398        labels: [years,months,weeks,days,hours,minutes,seconds],
399        labels1: [year,month,week,day,hour,minute,second],
400        padZeroes: true,
401      });
402    });
403    $('.circle-progressbar-wrap').each( function() {
404      var $bar = $(this);
405      var $color = ($bar.data('color') !== undefined) ? $bar.data('color') : '#55c981';
406      var $fill = ($bar.data('fill') !== undefined) ? $bar.data('fill') : '#ffffff';
407      var $reverse = ($bar.data('reverse') !== undefined) ? $bar.data('reverse') : true;
408      var $size = ($bar.data('size') !== undefined) ? $bar.data('size') : 150;
409      var $thickness = ($bar.data('thickness') !== undefined) ? $bar.data('thickness') : 10;
410      $('.circle-progressbar').circleProgress ({
411        size: $size,
412        fill: {
413          color: $color
414        },
415        thickness: $thickness,
416        emptyFill: $fill,
417        startAngle: 300,
418        reverse: $reverse,
419        lineCap: 'round',
420        animation: {
421          duration: 1800
422        }
423      })
424      .on('circle-animation-progress', function (event, progress, stepValue) {
425        $(this).find('.circle-counter').text((stepValue * 100).toFixed(0));
426      });      
427    });
428	} );
429
430	//Charity Addon for Elementor Needs
431	elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_peoples_need.default', function($scope, $){
432		owl_carousel();
433	} );
434
435	//Charity Addon for Elementor Slider
436  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_slider.default', function($scope, $){
437    //Charity Swiper Slider Script
438    let slider_el = $scope.find(".swiper-slides");
439    SwiperSliderInit(slider_el);
440    
441    var delay = 0;
442    $('.progress-bar').each(function(i) {
443      $(this).delay( delay*i ).animate ({
444        width: $(this).attr('aria-valuenow') + '%'
445      }, delay);
446      $(this).prop('Counter',0).animate ({
447        Counter: $(this).text()
448      },
449      {
450        duration: delay,
451        easing: 'swing',
452      });
453    });
454  } );
455
456  //Charity Addon for Elementor Cause List
457  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_cause_list.default', function($scope, $){
458    var delay = 0;
459    $('.progress-bar').each(function(i) {
460      $(this).delay( delay*i ).animate ({
461        width: $(this).attr('aria-valuenow') + '%'
462      }, delay);
463      $(this).prop('Counter',0).animate ({
464        Counter: $(this).text()
465      },
466      {
467        duration: delay,
468        easing: 'swing',
469      });
470    });
471  } );
472
473  //Charity Addon for Elementor Cause Single
474  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_single_cause.default', function($scope, $){
475    $('.circle-progressbar-wrap').each( function() {
476      var $bar = $(this);
477      var $color = ($bar.data('color') !== undefined) ? $bar.data('color') : '#55c981';
478      var $fill = ($bar.data('fill') !== undefined) ? $bar.data('fill') : '#ffffff';
479      var $reverse = ($bar.data('reverse') !== undefined) ? $bar.data('reverse') : true;
480      var $size = ($bar.data('size') !== undefined) ? $bar.data('size') : 150;
481      var $thickness = ($bar.data('thickness') !== undefined) ? $bar.data('thickness') : 10;
482      $('.circle-progressbar').circleProgress ({
483        size: $size,
484        fill: {
485          color: $color
486        },
487        thickness: $thickness,
488        emptyFill: $fill,
489        startAngle: 300,
490        reverse: $reverse,
491        lineCap: 'round',
492        animation: {
493          duration: 1800
494        }
495      })
496      .on('circle-animation-progress', function (event, progress, stepValue) {
497        $(this).find('.circle-counter').text((stepValue * 100).toFixed(0));
498      });      
499    });
500  } );
501
502  //Charity Addon for Elementor Filter
503  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_cause_filter.default', function($scope, $){
504    $('.masonry-wrap').each(function(i, gridContainer) {
505      var $gridContainer = $(gridContainer);
506      var $grid = $gridContainer.find('.nacep-masonry').imagesLoaded(function() {
507        $grid.isotope ({
508          itemSelector: '.masonry-item',
509          layoutMode: 'packery',
510          percentPosition: true,
511          isFitWidth: true,
512        })
513      });
514      $gridContainer.find('.masonry-filters').on('click', 'li a', function() {
515        var filterValue = $(this).attr('data-filter');
516        $grid.isotope ({
517          filter: filterValue,
518        });
519      });
520    });
521    $('.masonry-filters').each( function( i, buttonGroup ) {
522      var $buttonGroup = $(buttonGroup);
523      $buttonGroup.on( 'click', 'li a', function() {
524        $buttonGroup.find('.active').removeClass('active');
525        $(this).addClass('active');
526      });
527    });
528    owl_carousel();
529    var delay = 0;
530    $('.progress-bar').each(function(i) {
531      $(this).delay( delay*i ).animate ({
532        width: $(this).attr('aria-valuenow') + '%'
533      }, delay);
534      $(this).prop('Counter',0).animate ({
535        Counter: $(this).text()
536      },
537      {
538        duration: delay,
539        easing: 'swing',
540      });
541    });
542  } );
543
544  //Charity Addon for Elementor Cause List Charitable
545  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_cause_list_charitable.default', function($scope, $){
546    var delay = 0;
547    $('.progress-bar').each(function(i) {
548      $(this).delay( delay*i ).animate ({
549        width: $(this).attr('aria-valuenow') + '%'
550      }, delay);
551      $(this).prop('Counter',0).animate ({
552        Counter: $(this).text()
553      },
554      {
555        duration: delay,
556        easing: 'swing',
557      });
558    });
559  } );
560
561  // Charity Addon for Elementor Countdown Charitable
562  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_countdown_charitable.default', function($scope, $){
563    //Countdown Script
564    $('.nacep-countdown.static, .nacep-countdown.dynamic').each( function() {
565      var $countdown = $(this);
566      var date = $countdown.data("date");
567      var format = $countdown.data("format");
568      var count_format = format ? format : 'dHMS';
569      // Plural Labels
570      var years = $countdown.data("years");
571      var months = $countdown.data("months");
572      var weeks = $countdown.data("weeks");
573      var days = $countdown.data("days");
574      var hours = $countdown.data("hours");
575      var minutes = $countdown.data("minutes");
576      var seconds = $countdown.data("seconds");
577      // Singular Labels
578      var year = $countdown.data("year");
579      var month = $countdown.data("month");
580      var week = $countdown.data("week");
581      var day = $countdown.data("day");
582      var hour = $countdown.data("hour");
583      var minute = $countdown.data("minute");
584      var second = $countdown.data("second");
585
586      var austDay = new Date();
587      austDay = new Date(date);
588
589      $countdown.countdown({
590        until: austDay,
591        labels: [years,months,weeks,days,hours,minutes,seconds],
592        labels1: [year,month,week,day,hour,minute,second],
593        format: count_format,
594        padZeroes: true,
595      });
596    });
597
598    // Fake COuntdown Script
599    $('.nacep-countdown.fake').each( function() {
600      var $countdown = $(this);
601      var date = $countdown.data("date");
602      var today = new Date();
603      var newdate = new Date();
604      newdate.setDate(today.getDate() + date);
605      var mm = today.getMonth() + 1; //January is 0!
606      var yyyy = today.getFullYear();
607      today =  new Date(newdate);
608
609      // Plural Labels
610      var years = $countdown.data("years");
611      var months = $countdown.data("months");
612      var weeks = $countdown.data("weeks");
613      var days = $countdown.data("days");
614      var hours = $countdown.data("hours");
615      var minutes = $countdown.data("minutes");
616      var seconds = $countdown.data("seconds");
617      // Singular Labels
618      var year = $countdown.data("year");
619      var month = $countdown.data("month");
620      var week = $countdown.data("week");
621      var day = $countdown.data("day");
622      var hour = $countdown.data("hour");
623      var minute = $countdown.data("minute");
624      var second = $countdown.data("second");
625
626      $(this).countdown({
627        until: today,
628        labels: [years,months,weeks,days,hours,minutes,seconds],
629        labels1: [year,month,week,day,hour,minute,second],
630        padZeroes: true,
631      });
632    });
633  } );
634
635  // Charity Addon for Elementor Urgent Cause Charitable
636  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_urgent_cause_charitable.default', function($scope, $){
637    //Countdown Script
638    $('.nacep-countdown.static, .nacep-countdown.dynamic').each( function() {
639      var $countdown = $(this);
640      var date = $countdown.data("date");
641      var format = $countdown.data("format");
642      var count_format = format ? format : 'dHMS';
643      // Plural Labels
644      var years = $countdown.data("years");
645      var months = $countdown.data("months");
646      var weeks = $countdown.data("weeks");
647      var days = $countdown.data("days");
648      var hours = $countdown.data("hours");
649      var minutes = $countdown.data("minutes");
650      var seconds = $countdown.data("seconds");
651      // Singular Labels
652      var year = $countdown.data("year");
653      var month = $countdown.data("month");
654      var week = $countdown.data("week");
655      var day = $countdown.data("day");
656      var hour = $countdown.data("hour");
657      var minute = $countdown.data("minute");
658      var second = $countdown.data("second");
659
660      var austDay = new Date();
661      austDay = new Date(date);
662
663      $countdown.countdown({
664        until: austDay,
665        labels: [years,months,weeks,days,hours,minutes,seconds],
666        labels1: [year,month,week,day,hour,minute,second],
667        format: count_format,
668        padZeroes: true,
669      });
670    });
671
672    // Fake COuntdown Script
673    $('.nacep-countdown.fake').each( function() {
674      var $countdown = $(this);
675      var date = $countdown.data("date");
676      var today = new Date();
677      var newdate = new Date();
678      newdate.setDate(today.getDate() + date);
679      var mm = today.getMonth() + 1; //January is 0!
680      var yyyy = today.getFullYear();
681      today =  new Date(newdate);
682
683      // Plural Labels
684      var years = $countdown.data("years");
685      var months = $countdown.data("months");
686      var weeks = $countdown.data("weeks");
687      var days = $countdown.data("days");
688      var hours = $countdown.data("hours");
689      var minutes = $countdown.data("minutes");
690      var seconds = $countdown.data("seconds");
691      // Singular Labels
692      var year = $countdown.data("year");
693      var month = $countdown.data("month");
694      var week = $countdown.data("week");
695      var day = $countdown.data("day");
696      var hour = $countdown.data("hour");
697      var minute = $countdown.data("minute");
698      var second = $countdown.data("second");
699
700      $(this).countdown({
701        until: today,
702        labels: [years,months,weeks,days,hours,minutes,seconds],
703        labels1: [year,month,week,day,hour,minute,second],
704        padZeroes: true,
705      });
706    });
707    $('.circle-progressbar-wrap').each( function() {
708      var $bar = $(this);
709      var $color = ($bar.data('color') !== undefined) ? $bar.data('color') : '#55c981';
710      var $fill = ($bar.data('fill') !== undefined) ? $bar.data('fill') : '#ffffff';
711      var $reverse = ($bar.data('reverse') !== undefined) ? $bar.data('reverse') : true;
712      var $size = ($bar.data('size') !== undefined) ? $bar.data('size') : 150;
713      var $thickness = ($bar.data('thickness') !== undefined) ? $bar.data('thickness') : 10;
714      $('.circle-progressbar').circleProgress ({
715        size: $size,
716        fill: {
717          color: $color
718        },
719        thickness: $thickness,
720        emptyFill: $fill,
721        startAngle: 300,
722        reverse: $reverse,
723        lineCap: 'round',
724        animation: {
725          duration: 1800
726        }
727      })
728      .on('circle-animation-progress', function (event, progress, stepValue) {
729        $(this).find('.circle-counter').text((stepValue * 100).toFixed(0));
730      });      
731    });
732  } );
733
734  //Charity Addon for Elementor Slider Charitable
735  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_slider_charitable.default', function($scope, $){
736    //Charity Swiper Slider Script
737    let slider_el = $scope.find(".swiper-slides");
738    SwiperSliderInit(slider_el);
739    var delay = 0;
740    $('.progress-bar').each(function(i) {
741      $(this).delay( delay*i ).animate ({
742        width: $(this).attr('aria-valuenow') + '%'
743      }, delay);
744      $(this).prop('Counter',0).animate ({
745        Counter: $(this).text()
746      },
747      {
748        duration: delay,
749        easing: 'swing',
750      });
751    });
752  } );
753  
754  //Charity Addon for Elementor Slider Charitable
755  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_slider_cause.default', function($scope, $){
756    //Charity Swiper Slider Script
757    let slider_el = $scope.find(".swiper-slides");
758    SwiperSliderInit(slider_el);
759    var delay = 0;
760    $('.progress-bar').each(function(i) {
761      $(this).delay( delay*i ).animate ({
762        width: $(this).attr('aria-valuenow') + '%'
763      }, delay);
764      $(this).prop('Counter',0).animate ({
765        Counter: $(this).text()
766      },
767      {
768        duration: delay,
769        easing: 'swing',
770      });
771    });
772  } );
773
774  //Charity Addon for Elementor Filter Charitable
775  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_cause_filter_charitable.default', function($scope, $){
776    $('.masonry-wrap').each(function(i, gridContainer) {
777      var $gridContainer = $(gridContainer);
778      var $grid = $gridContainer.find('.nacep-masonry').imagesLoaded(function() {
779        $grid.isotope ({
780          itemSelector: '.masonry-item',
781          layoutMode: 'packery',
782          percentPosition: true,
783          isFitWidth: true,
784        })
785      });
786      $gridContainer.find('.masonry-filters').on('click', 'li a', function() {
787        var filterValue = $(this).attr('data-filter');
788        $grid.isotope ({
789          filter: filterValue,
790        });
791      });
792    });
793    $('.masonry-filters').each( function( i, buttonGroup ) {
794      var $buttonGroup = $(buttonGroup);
795      $buttonGroup.on( 'click', 'li a', function() {
796        $buttonGroup.find('.active').removeClass('active');
797        $(this).addClass('active');
798      });
799    });
800    owl_carousel();
801    var delay = 0;
802    $('.progress-bar').each(function(i) {
803      $(this).delay( delay*i ).animate ({
804        width: $(this).attr('aria-valuenow') + '%'
805      }, delay);
806      $(this).prop('Counter',0).animate ({
807        Counter: $(this).text()
808      },
809      {
810        duration: delay,
811        easing: 'swing',
812      });
813    });
814  } );
815  
816  //Charity Addon for Elementor Cause Single Charitable
817  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_unique_single_cause_charitable.default', function($scope, $){
818    $('.circle-progressbar-wrap').each( function() {
819      var $bar = $(this);
820      var $color = ($bar.data('color') !== undefined) ? $bar.data('color') : '#55c981';
821      var $fill = ($bar.data('fill') !== undefined) ? $bar.data('fill') : '#ffffff';
822      var $reverse = ($bar.data('reverse') !== undefined) ? $bar.data('reverse') : true;
823      var $size = ($bar.data('size') !== undefined) ? $bar.data('size') : 150;
824      var $thickness = ($bar.data('thickness') !== undefined) ? $bar.data('thickness') : 10;
825      $('.circle-progressbar').circleProgress ({
826        size: $size,
827        fill: {
828          color: $color
829        },
830        thickness: $thickness,
831        emptyFill: $fill,
832        startAngle: 300,
833        reverse: $reverse,
834        lineCap: 'round',
835        animation: {
836          duration: 1800
837        }
838      })
839      .on('circle-animation-progress', function (event, progress, stepValue) {
840        $(this).find('.circle-counter').text((stepValue * 100).toFixed(0));
841      });      
842    });
843  } );
844
845  //Chart
846  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_chart.default', function($scope, $){
847    //Chart Script
848    let $canvas = $scope.find(".eclt-chart canvas");
849        let chartData = $canvas.data('chart');
850
851        if (chartData) {
852            // Global configs
853            Chart.defaults.global.responsive = true;
854            Chart.defaults.global.maintainAspectRatio = false;
855            Chart.defaults.global.tooltips.backgroundColor = 'rgba(35,35,35,0.9)';
856            Chart.defaults.global.tooltips.bodyFontSize = 13;
857            Chart.defaults.global.tooltips.bodyFontStyle = 'bold';
858            Chart.defaults.global.tooltips.yPadding = 13;
859            Chart.defaults.global.tooltips.xPadding = 10;
860            Chart.defaults.doughnut.cutoutPercentage = 60;
861
862            // Create the chart
863            new Chart($canvas, {
864                type: chartData.type,
865                data: {
866                    labels: chartData.labels,
867                    datasets: chartData.datasets
868                },
869                options: chartData.options
870            });
871        } 
872  } );
873
874  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_typewriter.default', function($scope, $) {
875    let target_el   = $scope.find(".nacep-typewriter");
876    let $id         = target_el.attr('data-id');
877    let $typed_id   = target_el.attr('data-type-id');
878    let $typeSpeed  = target_el.attr('data-type-speed');
879    let $backSpeed  = target_el.attr('data-back-speed');
880    let $backDelay  = target_el.attr('data-back-delay');
881    let $startDelay = target_el.attr('data-start-delay');
882    let $cursorChar = target_el.attr('data-cursor-char');
883
884    let target_var  = 'typed_' + $typed_id + '_' + $id;
885
886    target_var = new Typed('.' + target_var, {
887      typeSpeed: parseInt($typeSpeed),
888      backSpeed: parseInt($backSpeed),
889      backDelay: parseInt($backDelay),
890      startDelay: parseInt($startDelay),
891      cursorChar: $cursorChar,
892      loop: true,
893      stringsElement: '.'+ target_var +'_strings',
894    });   
895  } );
896
897  elementorFrontend.hooks.addAction( 'frontend/element_ready/nacharity_basic_image_compare.default', function($scope, $) {
898    let target_el   = $scope.find(".nacep-compare");
899        let beforeUrl = target_el.data('before-url');
900        let beforeTitle = target_el.data('before-title');
901        let afterUrl = target_el.data('after-url');
902        let afterTitle = target_el.data('after-title');
903        let showLabels = target_el.data('show-labels');
904        let startingPosition = target_el.data('starting-position');
905        let compareStyle = target_el.data('compare-style');
906
907        new juxtapose.JXSlider(target_el[0], [
908            {
909                src: beforeUrl,
910                label: beforeTitle
911            },
912            {
913                src: afterUrl,
914                label: afterTitle
915            }
916        ], {
917            animate: true,
918            showLabels: showLabels,
919            showCredits: false,
920            startingPosition: startingPosition + "%",
921            makeResponsive: true,
922            mode: compareStyle
923        });
924  } );
925  
926} );
927
928})(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.