PageSourceSearch

https://deta-med.com/wp-content/plugins/primary-addon-for-elementor/elementor//js/prim-elementor.js?ver=7.1.3

js deta-med.com collected 2026-10-09 23:01:08 UTC 13,217 bytes, 315 lines download raw bytes

1/*
2Template Name: Primary Addon for Elementor
3Author: NicheAddon
4Version: 1.0.0
5Email: [email protected]
6*/
7
8(function($){
9'use strict';
10
11/*----- ELEMENTOR LOAD SWIPER CALL ---*/
12function SwiperSliderInit(slider_el){
13  //Atrakt Swiper Slider Script
14  let animEndEv = 'webkitAnimationEnd animationend';
15  let swipermw = (slider_el.hasClass('swiper-mousewheel')) ? true : false;
16  let swiperkb = (slider_el.hasClass('swiper-keyboard')) ? true : false;
17  let swipercentered = (slider_el.hasClass('swiper-center')) ? true : false;
18  let swiperautoplay = slider_el.data('autoplay');
19  let swiperinterval = slider_el.data('interval');
20  let swiperloop = slider_el.data('loop');
21  let swipermousedrag = slider_el.data('mousedrag');
22  let swipereffect = slider_el.data('effect');
23  let swiperclikable = slider_el.data('clickpage');
24  let swiperspeed = slider_el.data('speed');
25  let swiperinteraction = slider_el.data('interaction');
26  let swiperspace = slider_el.data('space');
27  let swipersitems = slider_el.data('items');
28
29  //Atrakt Swiper Slides Script
30  let autoplay = swiperinterval;
31  
32  // Init elementor swiper
33  let Swiper = elementorFrontend.utils.swiper;
34  initSwiper();
35
36  async function initSwiper() {
37    let slidervar = await new Swiper( slider_el, {
38      autoplayDisableOnInteraction: swiperinteraction,
39      slidesPerView: 1,
40      effect: swipereffect,
41      speed: swiperspeed,
42      loop: swiperloop,
43      paginationClickable: swiperclikable,
44      watchSlidesProgress: true,
45      autoplay: swiperautoplay,
46      simulateTouch: swipermousedrag,   
47      pagination: {
48        el: '.swiper-pagination',
49        clickable: true,
50      },
51      navigation: {
52        nextEl: '.swiper-button-next',
53        prevEl: '.swiper-button-prev',
54      },
55      mousewheelControl: swipermw,
56      keyboardControl: swiperkb,
57    });
58    slidervar.on('slideChange', function (s) {
59      let currentSlide = $(slidervar.slides[slidervar.activeIndex]);
60      let elems = currentSlide.find('.animated')
61      elems.each(function() {
62        let $this = $(this);
63        let animationType = $this.data('animation');
64        $this.addClass(animationType, 100).on(animEndEv, function() {
65          $this.removeClass(animationType);
66        });
67      });
68    });
69  }   
70}
71/*----- ELEMENTOR LOAD FUNTION CALL ---*/
72
73/*----- ELEMENTOR LOAD FUNTION CALL ---*/
74
75$( window ).on( 'elementor/frontend/init', function() {
76	//Owl Carousel Slider Script
77	$('.owl-carousel').each( function() {
78    var $carousel = $(this);
79    var $items = ($carousel.data('items') !== undefined) ? $carousel.data('items') : 1;
80    var $items_tablet = ($carousel.data('items-tablet') !== undefined) ? $carousel.data('items-tablet') : 1;
81    var $items_mobile_landscape = ($carousel.data('items-mobile-landscape') !== undefined) ? $carousel.data('items-mobile-landscape') : 1;
82    var $items_mobile_portrait = ($carousel.data('items-mobile-portrait') !== undefined) ? $carousel.data('items-mobile-portrait') : 1;
83    $carousel.owlCarousel ({
84      loop : ($carousel.data('loop') !== undefined) ? $carousel.data('loop') : true,
85      items : $carousel.data('items'),
86      margin : ($carousel.data('margin') !== undefined) ? $carousel.data('margin') : 0,
87      dots : ($carousel.data('dots') !== undefined) ? $carousel.data('dots') : true,
88      nav : ($carousel.data('nav') !== undefined) ? $carousel.data('nav') : false,
89      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>"],
90      autoplay : ($carousel.data('autoplay') !== undefined) ? $carousel.data('autoplay') : false,
91      autoplayTimeout : ($carousel.data('autoplay-timeout') !== undefined) ? $carousel.data('autoplay-timeout') : 5000,
92      animateIn : ($carousel.data('animatein') !== undefined) ? $carousel.data('animatein') : false,
93      animateOut : ($carousel.data('animateout') !== undefined) ? $carousel.data('animateout') : false,
94      mouseDrag : ($carousel.data('mouse-drag') !== undefined) ? $carousel.data('mouse-drag') : true,
95      autoWidth : ($carousel.data('auto-width') !== undefined) ? $carousel.data('auto-width') : false,
96      autoHeight : ($carousel.data('auto-height') !== undefined) ? $carousel.data('auto-height') : false,
97      center : ($carousel.data('center') !== undefined) ? $carousel.data('center') : false,
98      responsiveClass: true,
99      dotsEachNumber: true,
100      smartSpeed: 600,
101      autoplayHoverPause: true,
102      responsive : {
103        0 : {
104          items : $items_mobile_portrait,
105        },
106        480 : {
107          items : $items_mobile_landscape,
108        },
109        768 : {
110          items : $items_tablet,
111        },
112        992 : {
113          items : $items,
114        }
115      }
116    });
117    var totLength = $('.owl-dot', $carousel).length;
118    $('.total-no', $carousel).html(totLength);
119    $('.current-no', $carousel).html(totLength);
120    $carousel.owlCarousel();
121    $('.current-no', $carousel).html(1);
122    $carousel.on('changed.owl.carousel', function(event) {
123      var total_items = event.page.count;
124      var currentNum = event.page.index + 1;
125      $('.total-no', $carousel ).html(total_items);
126      $('.current-no', $carousel).html(currentNum);
127    });
128  });
129
130	//Primary Addon for Elementor Preloader Script
131  $('.napae-preloader').fadeOut(500);
132
133	var item_hover_class = function( selector ){
134		$(selector).on({
135		  mouseenter : function() {
136			$(this).addClass('napae-hover');
137		  },
138		  mouseleave : function() {
139			$(this).removeClass('napae-hover');
140		  }
141		});
142	};
143
144	var item_prev_class = function( selector ){
145		$(selector).on({
146		  mouseenter : function() {
147			$(this).prevAll(selector).addClass('process-done');
148		  },
149		  mouseleave : function() {
150			$(this).prevAll(selector).removeClass('process-done');
151		  }
152		});
153	};
154
155	//Primary Addon for Elementor Services
156	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_services.default', function($scope, $){
157		item_hover_class('.napae-service-item');
158	} );
159	//Primary Addon for Elementor Blog
160	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_blog.default', function($scope, $){
161		item_hover_class('.napae-news-item');
162    $('.napae-item').matchHeight ({
163      property: 'height'
164    });
165    
166    //Flickity Carousel Slider Script
167	  $('.flick-carousel').each( function() {
168	    var $Flick = $(this);
169	    $Flick.flickity  ({
170	      draggable : ($Flick.data('draggable') !== undefined) ? $Flick.data('draggable') : false,
171	      freeScroll : ($Flick.data('freescroll') !== undefined) ? $Flick.data('freescroll') : false,
172	      freeScrollFriction : ($Flick.data('freescrollfriction') !== undefined) ? $Flick.data('freescrollfriction') : 0.075,
173	      wrapAround : ($Flick.data('wraparound') !== undefined) ? $Flick.data('wraparound') : true,
174	      groupCells : ($Flick.data('groupcells') !== undefined) ? $Flick.data('groupcells') : '',
175	      autoPlay : ($Flick.data('autoplay') !== undefined) ? $Flick.data('autoplay') : '',
176	      pauseAutoPlayOnHover : ($Flick.data('pauseautoplayonhover') !== undefined) ? $Flick.data('pauseautoplayonhover') : false,
177	      adaptiveHeight : ($Flick.data('adaptiveheight') !== undefined) ? $Flick.data('adaptiveheight') : false,
178	      dragThreshold : ($Flick.data('dragthreshold') !== undefined) ? $Flick.data('dragthreshold') : '',
179	      selectedAttraction : ($Flick.data('selectedattraction') !== undefined) ? $Flick.data('selectedattraction') : 0.025,
180	      friction : ($Flick.data('friction') !== undefined) ? $Flick.data('friction') : 0.28,
181	      initialIndex : ($Flick.data('initialindex') !== undefined) ? $Flick.data('initialindex') : '',
182	      accessibility : ($Flick.data('accessibility') !== undefined) ? $Flick.data('accessibility') : true,
183	      setGallerySize : ($Flick.data('setgallerysize') !== undefined) ? $Flick.data('setgallerysize') : true,
184	      resize : ($Flick.data('resize') !== undefined) ? $Flick.data('resize') : true,
185	      cellAlign : ($Flick.data('cellalign') !== undefined) ? $Flick.data('cellalign') : 'center',
186	      contain : ($Flick.data('contain') !== undefined) ? $Flick.data('contain') : false,
187	      rightToLeft : ($Flick.data('righttoleft') !== undefined) ? $Flick.data('righttoleft') : false,
188	      prevNextButtons : ($Flick.data('prevnextbuttons') !== undefined) ? $Flick.data('prevnextbuttons') : false,
189	      pageDots : ($Flick.data('pagedots') !== undefined) ? $Flick.data('pagedots') : false,
190	    });
191	  });
192
193	} );
194	//Primary Addon for Elementor Gallery
195	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_gallery.default', function($scope, $){
196		item_hover_class('.napae-gallery-item');
197		$('.masonry-wrap').each(function(i, gridContainer) {
198      var $gridContainer = $(gridContainer);
199      var $grid = $gridContainer.find('.napae-masonry').imagesLoaded(function() {
200        $grid.isotope ({
201          itemSelector: '.masonry-item',
202          // layoutMode: 'packery',
203          percentPosition: true,
204          isFitWidth: true,
205        })
206      });
207      $grid.packery({
208	      itemSelector: '.masonry-item'
209	    });
210      $gridContainer.find('.masonry-filters').on('click', 'li a', function() {
211        var filterValue = $(this).attr('data-filter');
212        $grid.isotope ({
213          filter: filterValue,
214        });
215      });
216    });
217    $('.masonry-filters').each( function( i, buttonGroup ) {
218      var $buttonGroup = $(buttonGroup);
219      $buttonGroup.on( 'click', 'li a', function() {
220        $buttonGroup.find('.active').removeClass('active');
221        $(this).addClass('active');
222      });
223    });
224	} );
225	//Primary Addon for Elementor Contact
226	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_contact.default', function($scope, $){
227		item_hover_class('.napae-contact-item');
228	} );
229	//Primary Addon for Elementor Process
230	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_process.default', function($scope, $){
231	  item_prev_class('.napae-process-item');
232	} );
233	//Primary Addon for Elementor Team
234	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_team.default', function($scope, $){
235	  item_hover_class('.napae-mate-item');
236	} );
237	//Primary Addon for Elementor Video Popup
238	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_video.default', function($scope, $){
239	  item_hover_class('.napae-video-wrap');
240	} );
241	//Primary Addon for Elementor History
242	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_history.default', function($scope, $){
243	  // item_hover_class('.napae-history-item');
244		$('.napae-item').matchHeight ({
245	    property: 'height'
246	  });
247	} );
248	
249	//Primary Addon for Elementor Slider
250	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_slider.default', function($scope, $){
251		//Primary Swiper Slider Script
252		let slider_el = $scope.find(".swiper-slides");
253		SwiperSliderInit(slider_el);    
254	} );
255
256	
257	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_image_compare.default', function($scope, $) {
258		let target_el   = $scope.find(".napae-compare");
259        let beforeUrl = target_el.data('before-url');
260        let beforeTitle = target_el.data('before-title');
261        let afterUrl = target_el.data('after-url');
262        let afterTitle = target_el.data('after-title');
263        let showLabels = target_el.data('show-labels');
264        let startingPosition = target_el.data('starting-position');
265        let compareStyle = target_el.data('compare-style');
266
267        new juxtapose.JXSlider(target_el[0], [
268            {
269                src: beforeUrl,
270                label: beforeTitle
271            },
272            {
273                src: afterUrl,
274                label: afterTitle
275            }
276        ], {
277            animate: true,
278            showLabels: showLabels,
279            showCredits: false,
280            startingPosition: startingPosition + "%",
281            makeResponsive: true,
282            mode: compareStyle
283        });
284	} );
285	
286	//Chart
287	elementorFrontend.hooks.addAction( 'frontend/element_ready/prim_basic_chart.default', function($scope, $){
288	    //Chart Script
289	    let $canvas = $scope.find(".naeep-chart canvas");
290        let chartData = $canvas.data('chart');
291
292        if (chartData) {
293            // Global configs
294            Chart.defaults.global.responsive = true;
295            Chart.defaults.global.maintainAspectRatio = false;
296            Chart.defaults.global.tooltips.backgroundColor = 'rgba(35,35,35,0.9)';
297            Chart.defaults.global.tooltips.bodyFontSize = 13;
298            Chart.defaults.global.tooltips.bodyFontStyle = 'bold';
299            Chart.defaults.global.tooltips.yPadding = 13;
300            Chart.defaults.global.tooltips.xPadding = 10;
301            Chart.defaults.doughnut.cutoutPercentage = 60;
302
303            // Create the chart
304            new Chart($canvas, {
305                type: chartData.type,
306                data: {
307                    labels: chartData.labels,
308                    datasets: chartData.datasets
309                },
310                options: chartData.options
311            });
312        } 
313	} );
314} );
315})(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.