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.