1(function ($, elementor) { 2 "use strict"; 3 4 var Elementskit = { 5 6 init: function () { 7 8 var widgets = { 9 'elementskit-countdown-timer.default': Elementskit.Countdown_Timer, 10 'elementskit-client-logo.default': Elementskit.Client_Logo, 11 'elementskit-testimonial.default': Elementskit.Testimonial_Slider, 12 'elementskit-image-comparison.default': Elementskit.Image_Comparison, 13 'elementskit-progressbar.default': Elementskit.Progressbar, 14 'elementskit-piechart.default': Elementskit.Piechart, 15 'elementskit-funfact.default': Elementskit.Funfact, 16 'elementskit-gallery.default': Elementskit.Gallery, 17 'elementskit-motion-text.default': Elementskit.MotionText, 18 'elementskit-timeline.default': Elementskit.TimeLine, 19 'elementskit-post-tab.default': Elementskit.PostTab, 20 'elementskit-elementskit-hotspot.default': Elementskit.Hotspot, 21 'elementskit-header-search.default': Elementskit.Header_Search, 22 'elementskit-header-offcanvas.default': Elementskit.Header_Off_Canvas, 23 'elementskit-table.default': Elementskit.Table, 24 'elementskit-creative-button.default': Elementskit.Creative_Button, 25 'ekit-nav-menu.default': Elementskit.Nav_Menu, 26 'elementskit-woo-mini-cart.default': Elementskit.Mini_Cart, 27 'elementskit-team.default': Elementskit.Team, 28 'elementskit-image-accordion.default': Elementskit.Image_Accordion, 29 }; 30 $.each(widgets, function (widget, callback) { 31 elementor.hooks.addAction('frontend/element_ready/' + widget, callback); 32 }); 33 34 elementor.hooks.addAction('frontend/element_ready/global', Elementskit.GlobalCallback); 35 }, 36 37 GlobalCallback: function ($scope) { 38 // add global code 39 }, 40 41 AnimationFix: function ($scope) { 42 function init($scope) { 43 $scope.find('.elementskit-invisible').each(function () { 44 var el = $(this); 45 var settings = JSON.parse(el.attr('data-settings')); 46 47 var isVisible = Elementskit.IsElementInView(el, false), 48 animationClass = settings._animation, 49 animationDelay = settings._animation_delay || 300; 50 51 if (isVisible == true) { 52 setTimeout(function () { 53 el.removeClass('elementskit-invisible').addClass('animated ' + animationClass); 54 }, animationDelay); 55 } 56 }); 57 } 58 59 init($scope); 60 $(window).on('scroll', function () { 61 init($scope); 62 }); 63 }, 64 65 IsElementInView: function (element, fullyInView) { 66 var pageTop = $(window).scrollTop(); 67 var pageBottom = pageTop + $(window).height(); 68 var elementTop = element.offset().top; 69 var elementBottom = elementTop + element.height(); 70 71 if (fullyInView === true) { 72 return ((pageTop < elementTop) && (pageBottom > elementBottom)); 73 } else { 74 return ((elementTop <= pageBottom) && (elementBottom >= pageTop)); 75 } 76 }, 77 78 Nav_Menu: function ($scope) { 79 var menu_container = $scope.find('.elementskit-menu-container'); 80 if (menu_container.attr('ekit-dom-added') == 'yes') { 81 return; 82 } 83 menu_container 84 .before( 85 '<button class="elementskit-menu-hamburger elementskit-menu-toggler">' + 86 '<span class="elementskit-menu-hamburger-icon"></span>' + 87 '<span class="elementskit-menu-hamburger-icon"></span>' + 88 '<span class="elementskit-menu-hamburger-icon"></span>' + 89 '</button>' 90 ) 91 .after('<div class="elementskit-menu-overlay elementskit-menu-offcanvas-elements elementskit-menu-toggler"></div>') 92 .attr('ekit-dom-added', 'yes'); 93 }, 94 95 Mini_Cart: function ($scope) { 96 $scope.find(".ekit-dropdown-back").on('click mouseenter mouseleave', function (e) { 97 var self = $(this), 98 enableClick = self.hasClass('ekit-mini-cart-visibility-click'), 99 enableHover = self.hasClass('ekit-mini-cart-visibility-hover'), 100 body = self.find('.ekit-mini-cart-container'); 101 102 103 if (e.type === 'click' && enableClick && !$(e.target).parents('div').hasClass('ekit-mini-cart-container')) { 104 body.fadeToggle(); 105 } else if (e.type === 'mouseenter' && enableHover) { 106 body.fadeIn(); 107 } else if (e.type === 'mouseleave' && enableHover) { 108 body.fadeOut(); 109 } 110 111 }); 112 }, 113 114 Progressbar: function ($scope) { 115 var barElement = $scope.find(".single-skill-bar"); 116 var percentElement = $scope.find(".number-percentage"); 117 var value = percentElement.attr("data-value"); 118 var duration = percentElement.attr("data-animation-duration"); 119 duration = parseInt((duration != '' ? duration : 300), 10); 120 121 barElement.elementorWaypoint({ 122 handler: function () { 123 percentElement.animateNumbers(value, true, duration); 124 barElement.find('.skill-track').animate({ 125 width: value + '%' 126 }, 3500); 127 }, 128 offset: '100%' 129 }) 130 }, 131 Funfact: function ($scope) { 132 var barElement = $scope.find(".elementskit-funfact"); 133 var percentElement = $scope.find(".number-percentage"); 134 var value = percentElement.attr("data-value"); 135 var duration = percentElement.attr("data-animation-duration"); 136 duration = parseInt((duration != '' ? duration : 300), 10); 137 138 barElement.elementorWaypoint({ 139 handler: function () { 140 percentElement.animateNumbers(value, true, duration); 141 }, 142 offset: '100%' 143 }) 144 }, 145 Countdown_Timer: function ($scope) { 146 147 var $container1 = $scope.find('.elementskit-countdown-timer[data-ekit-countdown]'); 148 var $container2 = $scope.find('.elementskit-countdown-timer-2[data-ekit-countdown]'); 149 var $container3 = $scope.find('.elementskit-countdown-timer-3[data-ekit-countdown]'); 150 var $container4 = $scope.find('.elementskit-countdown-timer-4[data-ekit-countdown]'); 151 var $container5 = $scope.find('.elementskit-flip-clock'); 152 153 $container1.each(function () { 154 var $this = $(this), 155 finalDate = $(this).data('ekit-countdown'); 156 var hour = $(this).data('date-ekit-hour'), 157 minute = $(this).data('date-ekit-minute'), 158 second = $(this).data('date-ekit-second'), 159 day = $(this).data('date-ekit-day'), 160 week = $(this).data('date-ekit-week'), 161 finish_title = $(this).data('finish-title'), 162 finish_content = $(this).data('finish-content'); 163 164 $this.theFinalCountdown(finalDate, function (event) { 165 var $this = $(this).html(event.strftime(' ' + 166 '<div class="elementskit-timer-container elementskit-days"><div class="elementskit-inner-container"><div class="elementskit-timer-content"><span class="elementskit-timer-count">%-D </span><span class="elementskit-timer-title">' + day + '</span></div></div></div>' + 167 '<div class="elementskit-timer-container elementskit-hours"><div class="elementskit-inner-container"><div class="elementskit-timer-content"><span class="elementskit-timer-count">%H </span><span class="elementskit-timer-title">' + hour + '</span></div></div></div>' + 168 '<div class="elementskit-timer-container elementskit-minutes"><div class="elementskit-inner-container"><div class="elementskit-timer-content"><span class="elementskit-timer-count">%M </span><span class="elementskit-timer-title">' + minute + '</span></div></div></div>' + 169 '<div class="elementskit-timer-container elementskit-seconds"><div class="elementskit-inner-container"><div class="elementskit-timer-content"><span class="elementskit-timer-count">%S </span><span class="elementskit-timer-title">' + second + '</span></div></div></div>' 170 )); 171 }) 172 .on('finish.countdown', function () { 173 $(this).html( 174 finish_title + "<br/>" + finish_content 175 ); 176 }); 177 }); 178 179 $container2.each(function () { 180 var $this = $(this), 181 finalDate = $(this).data('ekit-countdown'); 182 var hour = $(this).data('date-ekit-hour'), 183 minute = $(this).data('date-ekit-minute'), 184 second = $(this).data('date-ekit-second'), 185 day = $(this).data('date-ekit-day'), 186 week = $(this).data('date-ekit-week'), 187 finish_title = $(this).data('finish-title'), 188 finish_content = $(this).data('finish-content'); 189 190 $this.theFinalCountdown(finalDate, function (event) { 191 192 var $this = $(this).html(event.strftime(' ' + 193 '<div class="elementskit-timer-container elementskit-days"><span class="elementskit-timer-count">%-D </span><span class="elementskit-timer-title">' + day + '</span></div>' + 194 '<div class="elementskit-timer-container elementskit-hours"><span class="elementskit-timer-count">%H </span><span class="elementskit-timer-title">' + hour + '</span></div>' + 195 '<div class="elementskit-timer-container elementskit-minutes"><span class="elementskit-timer-count">%M </span><span class="elementskit-timer-title">' + minute + '</span></div>' + 196 '<div class="elementskit-timer-container elementskit-seconds"><span class="elementskit-timer-count">%S </span><span class="elementskit-timer-title">' + second + '</span></div>')); 197 }) 198 .on('finish.countdown', function () { 199 $(this).html( 200 finish_title + "<br/>" + finish_content 201 ); 202 }); 203 }); 204 205 $container3.each(function () { 206 var $this = $(this), 207 finalDate = $(this).data('ekit-countdown'); 208 var hour = $(this).data('date-ekit-hour'), 209 minute = $(this).data('date-ekit-minute'), 210 second = $(this).data('date-ekit-second'), 211 day = $(this).data('date-ekit-day'), 212 week = $(this).data('date-ekit-week'), 213 finish_title = $(this).data('finish-title'), 214 finish_content = $(this).data('finish-content'); 215 216 $this.theFinalCountdown(finalDate, function (event) { 217 var $this = $(this).html(event.strftime(' ' + 218 '<div class="elementskit-timer-container elementskit-days"><div class="elementskit-timer-content"><div class="elementskit-inner-container"><span class="elementskit-timer-count">%-D </span><span class="elementskit-timer-title">' + day + '</span></div></div></div>' + 219 '<div class="elementskit-timer-container elementskit-hours"><div class="elementskit-timer-content"><div class="elementskit-inner-container"><span class="elementskit-timer-count">%H </span><span class="elementskit-timer-title">' + hour + '</span></div></div></div>' + 220 '<div class="elementskit-timer-container elementskit-minutes"><div class="elementskit-timer-content"><div class="elementskit-inner-container"><span class="elementskit-timer-count">%M </span><span class="elementskit-timer-title">' + minute + '</span></div></div></div>' + 221 '<div class="elementskit-timer-container elementskit-seconds"><div class="elementskit-timer-content"><div class="elementskit-inner-container"><span class="elementskit-timer-count">%S </span><span class="elementskit-timer-title">' + second + '</span></div></div></div>')); 222 223 }) 224 .on('finish.countdown', function () { 225 $(this).html( 226 finish_title + "<br/>" + finish_content 227 ); 228 }); 229 }); 230 231 $container4.each(function () { 232 var $this = $(this), 233 finalDate = $(this).data('ekit-countdown'); 234 var hour = $(this).data('date-ekit-hour'), 235 minute = $(this).data('date-ekit-minute'), 236 second = $(this).data('date-ekit-second'), 237 day = $(this).data('date-ekit-day'), 238 week = $(this).data('date-ekit-week'), 239 finish_title = $(this).data('finish-title'), 240 finish_content = $(this).data('finish-content'); 241 242 $this.theFinalCountdown(finalDate, function (event) { 243 244 var $this = $(this).html(event.strftime(' ' + 245 '<div class="elementskit-timer-container elementskit-days"><span class="elementskit-timer-count">%-D </span><span class="elementskit-timer-title">' + day + '</span></div>' + 246 '<div class="elementskit-timer-container elementskit-hours"><span class="elementskit-timer-count">%H </span><span class="elementskit-timer-title">' + hour + '</span></div>' + 247 '<div class="elementskit-timer-container elementskit-minutes"><span class="elementskit-timer-count">%M </span><span class="elementskit-timer-title">' + minute + '</span></div>' + 248 '<div class="elementskit-timer-container elementskit-seconds"><span class="elementskit-timer-count">%S </span><span class="elementskit-timer-title">' + second + '</span></div>')); 249 250 }) 251 .on('finish.countdown', function () { 252 $(this).html( 253 finish_title + "<br/>" + finish_content 254 ); 255 $(this).addClass('elementskit-coundown-finish'); 256 }); 257 }); 258 $container5.each(function () { 259 var hour = $(this).data('date-ekit-hour'), 260 minute = $(this).data('date-ekit-minute'), 261 second = $(this).data('date-ekit-second'), 262 day = $(this).data('date-ekit-day'), 263 week = $(this).data('date-ekit-week'), 264 finalDate = $(this).data('ekit-countdown'), 265 finish_title = $(this).data('finish-title'), 266 finish_content = $(this).data('finish-content'); 267 268 var labelsData = { 269 'elementskit-wks': week, 270 'elementskit-days': day, 271 'elementskit-hrs': hour, 272 'elementskit-mins': minute, 273 'elementskit-secs': second 274 }; 275 276 var labels = ['elementskit-wks', 'elementskit-days', 'elementskit-hrs', 'elementskit-mins', 'elementskit-secs'], 277 278 nextYear = (new Date(finalDate)), 279 // template = _.template('<div class="elementskit-time <%= label %>"><span class="elementskit-count elementskit-curr elementskit-top"><%= curr %></span><span class="elementskit-count elementskit-next elementskit-top"><%= next %></span><span class="elementskit-count elementskit-next elementskit-bottom"><%= next %></span><span class="elementskit-count elementskit-curr elementskit-bottom"><%= curr %></span><span class="elementskit-label"><%= labelD.length < 6 ? labelD : labelD.substr(0, 3) %></span></div>'), 280 currDate = '00:00:00:00:00', 281 nextDate = '00:00:00:00:00', 282 parser = /([0-9]{2})/gi, 283 $example = $container5; 284 // Parse countdown string to an object 285 function strfobj(str) { 286 var parsed = str.match(parser), 287 obj = {};
288 labels.forEach(function (label, i) { 289 obj[label] = parsed[i] 290 }); 291 return obj; 292 } 293 // Return the time components that diffs 294 function diff(obj1, obj2) { 295 var diff = []; 296 labels.forEach(function (key) { 297 if (obj1[key] !== obj2[key]) { 298 diff.push(key); 299 } 300 }); 301 return diff; 302 } 303 // Build the layout 304 var initData = strfobj(currDate); 305 labels.forEach(function (label, i) { 306 // $example.append(template({ 307 // curr: initData[label], 308 // next: initData[label], 309 // label: label, 310 // labelD: labelsData[label] 311 // })); 312 313 $example.append(`<div class="elementskit-time ${label}"> 314 <span class="elementskit-count elementskit-curr elementskit-top">${initData[label]}</span> 315 <span class="elementskit-count elementskit-next elementskit-top">${initData[label]}</span> 316 <span class="elementskit-count elementskit-next elementskit-bottom">${initData[label]}</span> 317 <span class="elementskit-count elementskit-curr elementskit-bottom">${initData[label]}</span> 318 <span class="elementskit-label">${labelsData[label].length < 6 ? labelsData[label] : labelsData[label].substr(0, 3)}</span> 319 </div>`); 320 }); 321 // Starts the countdown 322 $example.theFinalCountdown(nextYear, function (event) { 323 var newDate = event.strftime('%w:%d:%H:%M:%S'), 324 data; 325 if (newDate !== nextDate) { 326 currDate = nextDate; 327 nextDate = newDate; 328 // Setup the data 329 data = { 330 'curr': strfobj(currDate), 331 'next': strfobj(nextDate) 332 }; 333 // Apply the new values to each node that changed 334 diff(data.curr, data.next).forEach(function (label) { 335 var selector = '.%s'.replace(/%s/, label), 336 $node = $example.find(selector); 337 // Update the node 338 $node.removeClass('elementskit-flip'); 339 $node.find('.elementskit-curr').text(data.curr[label]); 340 $node.find('.elementskit-next').text(data.next[label]); 341 // Wait for a repaint to then flip 342 setTimeout(function ($node) { 343 $node.addClass('elementskit-flip'); 344 }, 50, $node); 345 }); 346 } 347 }) 348 .on('finish.countdown', function () { 349 $(this).html( 350 finish_title + "<br/>" + finish_content 351 ); 352 }); 353 }); 354 355 }, 356 357 Client_Logo: function ($scope) { 358 var $log_carosel = $scope.find('.elementskit-clients-slider'); 359 $log_carosel.each(function () { 360 // //console.log($(this).data('right_icon')); 361 var leftArrow = '<button type="button" class="slick-prev"><i class="icon icon-left-arrow2"></i></button>'; 362 363 var rightArrow = '<button type="button" class="slick-next"><i class="icon icon-right-arrow2"></i></button>'; 364 365 var slidestoshowtablet = $(this).data('slidestoshowtablet'); 366 var slidestoscroll_tablet = $(this).data('slidestoscroll_tablet'); 367 var slidestoshowmobile = $(this).data('slidestoshowmobile'); 368 var slidestoscroll_mobile = $(this).data('slidestoscroll_mobile'); 369 var arrow = $(this).data('show_arrow') === 'yes' ? true : false; 370 var dot = $(this).data('show_dot') === 'yes' ? true : false; 371 var autoPlay = $(this).data('autoplay') === 'yes' ? true : false; 372 var centerMode = $(this).data('data-center_mode') === 'yes' ? true : false; 373 374 $(this).not('.slick-initialized').slick({ 375 slidesToShow: ($(this).data('slidestoshow') !== 'undefined') ? $(this).data('slidestoshow') : 4, 376 slidesToScroll: ($(this).data('slidestoscroll') !== 'undefined') ? $(this).data('slidestoscroll') : 4, 377 autoplay: ($(this).data('autoplay') !== 'undefined') ? autoPlay : true, 378 autoplaySpeed: ($(this).data('speed') !== 'undefined') ? $(this).data('speed') : 1000, 379 arrows: ($(this).data('show_arrow') !== 'undefined') ? arrow : true, 380 dots: ($(this).data('show_dot') !== 'undefined') ? dot : true, 381 pauseOnHover: ($(this).data('pause_on_hover') == 'yes') ? true : false, 382 prevArrow: ($(this).data('left_icon') !== 'undefined') ? '<button type="button" class="slick-prev"><i class="' + $(this).data('left_icon') + '"></i></button>' : leftArrow, 383 nextArrow: ($(this).data('right_icon') !== 'undefined') ? '<button type="button" class="slick-next"><i class="' + $(this).data('right_icon') + '"></i></button>' : rightArrow, 384 rows: ($(this).data('rows') !== 'undefined') ? $(this).data('rows') : 1, 385 vertical: ($(this).data('vertical_style') == 'yes') ? true : false, 386 infinite: ($(this).data('autoplay') !== 'undefined') ? autoPlay : true, 387 responsive: [{ 388 breakpoint: 1024, 389 settings: { 390 slidesToShow: slidestoshowtablet, 391 slidesToScroll: slidestoscroll_tablet, 392 } 393 }, 394 { 395 breakpoint: 600, 396 settings: { 397 slidesToShow: slidestoshowtablet, 398 slidesToScroll: slidestoscroll_tablet 399 } 400 }, 401 { 402 breakpoint: 480, 403 settings: {
404 arrows: false, 405 slidesToShow: slidestoshowmobile, 406 slidesToScroll: slidestoscroll_mobile 407 } 408 } 409 ] 410 411 }); 412 413 }); 414 }, 415 416 Testimonial_Slider: function ($scope) { 417 var $testimonial_slider = $scope.find('.elementskit-testimonial-slider'); 418 $testimonial_slider.each(function () { 419 var leftArrow = '<button type="button" class="slick-prev"><i class="icon icon-left-arrow2"></i></button>'; 420 var rightArrow = '<button type="button" class="slick-next"><i class="icon icon-right-arrow2"></i></button>'; 421 422 var slidestoshowtablet = $(this).data('slidestoshowtablet'); 423 var slidestoscroll_tablet = $(this).data('slidestoscroll_tablet'); 424 var slidestoshowmobile = $(this).data('slidestoshowmobile'); 425 var slidestoscroll_mobile = $(this).data('slidestoscroll_mobile'); 426 var arrow = $(this).data('show_arrow') === 'yes' ? true : false; 427 var dot = $(this).data('show_dot') === 'yes' ? true : false; 428 var autoPlay = $(this).data('autoplay') === 'yes' ? true : false; 429 // var centerMode = $(this).data('data-center_mode') === 'yes' ? true : false; 430 431 432 $(this).not('.slick-initialized').slick({ 433 slidesToShow: ($(this).data('slidestoshow') !== 'undefined') ? $(this).data('slidestoshow') : 1, 434 slidesToScroll: ($(this).data('slidestoscroll') !== 'undefined') ? $(this).data('slidestoscroll') : 1, 435 autoplay: ($(this).data('autoplay') !== 'undefined') ? autoPlay : true, 436 autoplaySpeed: ($(this).data('speed') !== 'undefined') ? $(this).data('speed') : 1000, 437 arrows: ($(this).data('show_arrow') !== 'undefined') ? arrow : true, 438 dots: ($(this).data('show_dot') !== 'undefined') ? dot : true, 439 pauseOnHover: ($(this).data('pause_on_hover') == 'yes') ? true : false, 440 prevArrow: ($(this).data('left_icon') !== 'undefined') ? '<button type="button" class="slick-prev"><i class="' + $(this).data('left_icon') + '"></i></button>' : leftArrow, 441 nextArrow: ($(this).data('right_icon') !== 'undefined') ? '<button type="button" class="slick-next"><i class="' + $(this).data('right_icon') + '"></i></button>' : rightArrow, 442 // rows: ($(this).data('rows') !== 'undefined') ? $(this).data('rows') : 1, 443 vertical: ($(this).data('vertical_style') == 'yes') ? true : false, 444 infinite: ($(this).data('autoplay') !== 'undefined') ? autoPlay : true, 445 responsive: [{ 446 breakpoint: 1024, 447 settings: { 448 slidesToShow: slidestoshowtablet, 449 slidesToScroll: slidestoscroll_tablet, 450 } 451 }, 452 { 453 breakpoint: 600, 454 settings: { 455 slidesToShow: slidestoshowtablet, 456 slidesToScroll: slidestoscroll_tablet 457 } 458 }, 459 { 460 breakpoint: 480, 461 settings: { 462 arrows: false, 463 slidesToShow: slidestoshowmobile, 464 slidesToScroll: slidestoscroll_mobile 465 } 466 } 467 ] 468 }); 469 470 }); 471 }, 472 473 Image_Comparison: function ($scope) { 474 475 var $image_comparison_container = $scope.find('.image-comparison-container'); 476 var $image_comparison_container_vertical = $scope.find('.image-comparison-container-vertical'); 477 478 479 var $this = $image_comparison_container, 480 offset = $this.data('offset'), 481 overlay = $this.data('overlay'), 482 label_before = $this.data('label_before'), 483 label_after = $this.data('label_after'), 484 move_with_handle_only = $this.data('move_with_handle_only'), 485 move_slider_on_hover = $this.data('move_slider_on_hover'), 486 click_to_move = $this.data('click_to_move'); 487 488 489 490 $image_comparison_container.twentytwenty({ 491 before_label: label_before, // Set a custom before label 492 after_label: label_after, // Set a custom after label 493 default_offset_pct: offset, // How much of the before image is visible when the page loads 494 no_overlay: overlay, //Do not show the overlay with before and after 495 move_slider_on_hover: move_slider_on_hover, // Move slider on mouse hover? 496 move_with_handle_only: move_with_handle_only, // Allow a user to swipe anywhere on the image to control slider movement. 497 click_to_move: click_to_move // Allow a user to click (or tap) anywhere on the image to move the slider to that location. 498 }); 499 500 var $this = $image_comparison_container_vertical, 501 offset = $this.data('offset'),
502 overlay = $this.data('overlay'), 503 label_before = $this.data('label_before'), 504 label_after = $this.data('label_after'), 505 move_slider_on_hover = $this.data('move_slider_on_hover'), 506 click_to_move = $this.data('click_to_move'); 507 508 509 $image_comparison_container_vertical.twentytwenty({ 510 orientation: 'vertical', 511 before_label: label_before, // Set a custom before label 512 after_label: label_after, // Set a custom after label 513 default_offset_pct: offset, // How much of the before image is visible when the page loads 514 no_overlay: overlay, //Do not show the overlay with before and after 515 move_slider_on_hover: move_slider_on_hover, // Move slider on mouse hover? 516 move_with_handle_only: move_with_handle_only, // Allow a user to swipe anywhere on the image to control slider movement. 517 click_to_move: click_to_move // Allow a user to click (or tap) anywhere on the image to move the slider to that location. 518 519 }); 520 521 522 }, 523 Piechart: function ($scope) { 524 var colorfulchart = $scope.find('.colorful-chart'); 525 526 //console.log(colorfulchart); 527 528 if (colorfulchart.length > 0) { 529 530 colorfulchart.each(function (__, e) { 531 var myColors = $(e).data('color'); 532 var datalineWidth = $(e).data('linewidth'); 533 var color_type = $(e).data('pie_color_style'); 534 var gradentColor1 = $(e).data('gradientcolor1'); 535 var gradentColor2 = $(e).data('gradientcolor2'); 536 var barbg = $(e).data('barbg'); 537 538 var obj; 539 540 if (color_type === 'gradient') { 541 542 obj = { 543 gradientChart: true, 544 barColor: gradentColor1, 545 gradientColor1: gradentColor2, 546 gradientColor2: gradentColor1, 547 lineWidth: datalineWidth, 548 trackColor: barbg, 549 }; 550 551 } else { 552 obj = { 553 lineWidth: datalineWidth, 554 barColor: myColors, 555 trackColor: barbg, 556 }; 557 } 558 559 $(e).myChart(obj); 560 }) 561 } 562 563 }, 564 Gallery: function ($scope) { 565 var $container = $scope.find('.ekit_gallery_grid'); 566 var column = $container.data('gallerycol'); 567 // console.log((parseInt(column.tablet, 10))); 568 if ($container.length > 0) { 569 var colWidth = function colWidth() { 570 var w = $container.width(), 571 columnNum, 572 columnWidth = 0; 573 if (w > 1024) { 574 columnNum = parseInt(column.desktop, 10); 575 } else if (w > 768) { 576 columnNum = parseInt(column.tablet, 10); 577 } 578 columnWidth = Math.floor(w / columnNum); 579 $container.find('.ekit_gallery_grid_item').each(function () { 580 var $item = $(this), 581 multiplier_w = $item.attr('class').match(/ekit_gallery_grid_item-w(\d)/), 582 width = multiplier_w ? columnWidth * multiplier_w[1] : columnWidth; 583 $item.css({ 584 width: width, 585 }); 586 }); 587 return columnWidth; 588 }, 589 isotope = function isotope() { 590 $container.isotope({ 591 resizable: false, 592 itemSelector: '.ekit_gallery_grid_item', 593 masonry: { 594 columnWidth: colWidth(), 595 gutterWidth: 0 596 } 597 }); 598 }; 599 isotope(); 600 $(window).on('resize load', isotope); 601 var $optionSets = $scope.find('.filter-button-wraper .option-set'), 602 $optionLinks = $optionSets.find('a'); 603 $optionLinks.on('click', function () { 604 var $this = $(this); 605 var $optionSet = $this.parents('.option-set'); 606 $optionSet.find('.selected').removeClass('selected'); 607 $this.addClass('selected'); 608 // make option object dynamically, i.e. { filter: '.my-filter-class' } 609 var options = {}, 610 key = $optionSet.attr('data-option-key'), 611 value = $this.attr('data-option-value'); 612 613 // parse 'false' as false boolean 614 value = value === 'false' ? false : value; 615 options[key] = value; 616 if (key === 'layoutMode' && typeof changeLayoutMode === 'function') { 617 // changes in layout modes need extra logic 618 changeLayoutMode($this, options); 619 } else { 620 // creativewise, apply new options 621 $container.isotope(options); 622 } 623 return false; 624 }); 625 } 626 // tilt 627 var tiltContainer = $scope.find('.ekit-gallery-portfolio-tilt'), 628 glare = $(tiltContainer).data('tilt-glare') === 'yes' ? true : false;
629 $(tiltContainer).tilt({ 630 easing: "cubic-bezier(.03,.98,.52,.99)", 631 transition: true, 632 glare: glare, 633 }) 634 }, 635 MotionText: function ($scope) { 636 var texts = $scope.find('.ekit_char_based .ekit_motion_text'); 637 var motionTitle = $scope.find('.ekit_motion_text_title'); 638 639 // split content 640 texts.each(function () { 641 var text = $(this); 642 for (let i = 0; i < text.length; i++) { 643 var $this = text[i]; 644 var content = $this.innerHTML; 645 content = content.trim(); 646 var str = ''; 647 var delay = parseInt(text.attr('data-ekit-animation-delay')), 648 delayIncrement = delay; 649 650 //console.log(delay); 651 652 for (let l = 0; l < content.length; l++) { 653 if (content[l] != '') { 654 str += `<span class="ekit-letter" style="animation-delay:${delay}ms; -moz-animation-delay:${delay}ms; -webkit-animation-delay:${delay}ms;">${content[l]}</span>`; 655 delay += delayIncrement; 656 } else { 657 str += content[i]; 658 } 659 } 660 $this.innerHTML = str; 661 } 662 }); 663 664 // motion title on scroll 665 var animationClass = motionTitle.attr("data-animate-class"); 666 motionTitle.elementorWaypoint({ 667 handler: function () { 668 motionTitle.addClass(animationClass).css('opacity', 1); 669 }, 670 offset: '100%' 671 }); 672 673 674 }, 675 676 TimeLine: function ($scope) { 677 678 Elementskit.AnimationFix($scope); 679 680 var horizantalTimeline = $scope.find('.horizantal-timeline'); 681 682 if (horizantalTimeline.length > 0) { 683 horizantalTimeline.find('.content-group').each(function (__, e) { 684 $(e).on('mouseenter', function () { 685 if ($(e).parents('.single-timeline').hasClass('hover')) { 686 $(e).parents('.single-timeline').removeClass('hover') 687 } else { 688 $(e).parents('.single-timeline').addClass('hover') 689 $(e).parents('.single-timeline').nextAll().removeClass('hover') 690 $(e).parents('.single-timeline').prevAll().removeClass('hover') 691 } 692 }) 693 }) 694 } 695 }, 696 697 PostTab: function ($scope) { 698 var tab = $scope.find('.post--tab'); 699 700 if (tab.length < 1) { 701 return; 702 } 703 704 var event_type = tab.attr('data-post-tab-event'); 705 706 tab.find('.tabHeader > .tab__list > .tab__list__item').on(event_type, function () { 707 $(tab).find('.tabHeader > .tab__list > .tab__list__item').removeClass('active'); 708 $(this).addClass('active'); 709 $('.tabContent > .tabItem').removeClass('active'); 710 $(tab).find('.tabContent > .tabItem').eq($(this).index()).addClass('active'); 711 $(tab).find('.tabContent > .tabItem').hide(); 712 $(tab).find('.tabContent > .tabItem').eq($(this).index()).show(); 713 }); 714 }, 715 Hotspot: function ($scope) { 716 if ($scope.find('[data-toggle="tooltip"]').length > 0) { 717 var event_type = $scope.find('[data-toggle="tooltip"]'); 718 event_type.tooltip(); 719 } 720 }, 721 Header_Search: function ($scope) { 722 if ($scope.find('.ekit-modal-popup').length > 0) { 723 $scope.find('.ekit-modal-popup').magnificPopup({ 724 type: 'inline', 725 fixedContentPos: false, 726 fixedBgPos: true, 727 overflowY: 'auto', 728 closeBtnInside: false, 729 callbacks: { 730 beforeOpen: function () { 731 this.st.mainClass = "my-mfp-slide-bottom ekit-promo-popup"; 732 } 733 } 734 }); 735 } 736 }, 737 Team: function ($scope) { 738 $scope.find('.ekit-team-popup').magnificPopup({ 739 type: 'inline', 740 fixedContentPos: true, 741 fixedBgPos: true, 742 overflowY: 'auto', 743 closeBtnInside: true, 744 prependTo: $scope.find('.ekit-wid-con'), 745 callbacks: { 746 beforeOpen: function () { 747 this.st.mainClass = "my-mfp-slide-bottom ekit-promo-popup"; 748 } 749 } 750 }); 751 }, 752 Table: function ($scope) { 753 if ($scope.find('.ekit_table').length > 0) { 754 var settings = $scope.find('.ekit_table').data('settings'), 755 prevText = (settings.nav_style.trim() === 'text' || settings.nav_style.trim() === 'both') ? '<span class="ekit-tbl-pagi-nav ekit-tbl-pagi-prev">'+ settings.prev_text +'</span>' : '', 756 nextText = (settings.nav_style.trim() === 'text' || settings.nav_style.trim() === 'both') ? '<span class="ekit-tbl-pagi-nav ekit-tbl-pagi-next">'+ settings.next_text +'</span>' : '', 757 prevArrow = (settings.nav_style.trim() === 'arrow' || settings.nav_style.trim() === 'both') ? '<i class="ekit-tbl-pagi-nav-icon ekit-tbl-pagi-nav-prev-icon '+ settings.prev_arrow +'" aria-hidden="true"></i>' : '', 758 nextArrow = (settings.nav_style.trim() === 'arrow' || settings.nav_style.trim() === 'both') ? '<i class="ekit-tbl-pagi-nav-icon ekit-tbl-pagi-nav-next-icon '+ settings.next_arrow +'" aria-hidden="true"></i>' : ''; 759 760 $(window).trigger('resize'); 761 762 var tableConfig = { 763 buttons: settings.button === true ? ['copy', 'excel', 'csv'] : [], 764 bFilter: settings.search, 765 autoFill: true, //don't know 766 pageLength: settings.item_per_page ? settings.item_per_page : 1, 767 fixedHeader: settings.fixedHeader, 768 responsive: settings.responsive, 769 paging: settings.pagination, 770 ordering: settings.ordering, 771 info: settings.info, 772 "language": { 773 search: '<span class="ekit-table-search-label"><i class="fa fa-search" aria-hidden="true"></i></span>', 774 searchPlaceholder: 'Type Here To Search...', 775 paginate: { 776 next: nextText + nextArrow, 777 previous: prevArrow + prevText 778 } 779 } 780 } 781 782 if (settings.entries === false) { 783 tableConfig.dom = 'Bfrtip'; 784 } 785 786 $scope.find('.ekit_table table').DataTable(tableConfig); 787 } 788 }, 789 790 Header_Off_Canvas: function ($scope) { 791 if ($scope.find('.ekit-sidebar-group').length > 0) { 792 $scope.find('.ekit_offcanvas-sidebar').on('click', function (e) { 793 e.preventDefault(); 794 $scope.find('.ekit-sidebar-group').addClass('ekit_isActive'); 795 }); 796 $scope.find('.ekit_close-side-widget').on('click', function (e) { 797 e.preventDefault(); 798 $scope.find('.ekit-sidebar-group').removeClass('ekit_isActive'); 799 }); 800 $scope.find('.ekit-overlay').on('click', function (e) { 801 $scope.find('.ekit-sidebar-group').removeClass('ekit_isActive'); 802 }); 803 } 804 }, 805 806 Creative_Button: function ($scope) { 807 if ($scope.find('.ekit_position_aware').length > 0) { 808 $scope.find('.ekit_position_aware').on('mouseenter', function (e) { 809 var parentOffset = $(this).offset(), 810 relX = e.pageX - parentOffset.left, 811 relY = e.pageY - parentOffset.top; 812 $(this).find('.ekit_position_aware_bg').css({ 813 top: relY, 814 left: relX 815 }); 816 }).on('mouseout', function (e) { 817 var parentOffset = $(this).offset(), 818 relX = e.pageX - parentOffset.left, 819 relY = e.pageY - parentOffset.top; 820 $(this).find('.ekit_position_aware_bg').css({ 821 top: relY, 822 left: relX 823 }); 824 }); 825 } 826 }, 827 828 Image_Accordion: function ($scope) { 829 if ($scope.find('.elementskit-single-image-accordion').length > 0) { 830 $scope.find('.elementskit-single-image-accordion').on('click', function (e) { 831 e.preventDefault(); 832 $(this).siblings().removeClass('active').end().addClass('active'); 833 }) 834 } 835 } 836 }; 837 $(window).on('elementor/frontend/init', Elementskit.init); 838}(jQuery, window.elementorFrontend)); 839 840 841 842(function ($) { 843 "use strict"; 844 $.fn.animateNumbers = function (stop, commas, duration, ease) { 845 return this.each(function () { 846 var $this = $(this); 847 var start = parseInt($this.text().replace(/,/g, ""), 10); 848 commas = (commas === undefined) ? true : commas; 849 $({ 850 value: start 851 }).animate({ 852 value: stop 853 }, { 854 duration: duration == undefined ? 500 : duration, 855 easing: ease == undefined ? "swing" : ease, 856 step: function () { 857 $this.text(Math.floor(this.value)); 858 if (commas) { 859 $this.text($this.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); 860 } 861 }, 862 complete: function () { 863 if (parseInt($this.text(), 10) !== stop) { 864 $this.text(stop); 865 if (commas) { 866 $this.text($this.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); 867 } 868 } 869 } 870 }); 871 }); 872 }; 873 874 $.fn.myChart = function (options) { 875 var settings = $.extend({ 876 barColor: '#666666', 877 gradientColor1: '', 878 gradientColor2: '', 879 scaleColor: 'transparent', 880 lineWidth: 20, 881 size: 150, 882 trackColor: '#f7f7f7', 883 lineCap: 'round', 884 gradientChart: false, 885 }, options); 886 887 return this.easyPieChart({ 888 barColor: settings.gradientChart === true ? function (percent) { 889 var ctx = this.renderer.getCtx(); 890 var canvas = this.renderer.getCanvas(); 891 var gradient = ctx.createLinearGradient(0, 0, canvas.width, 0); 892 gradient.addColorStop(0, settings.gradientColor1); 893 gradient.addColorStop(1, settings.gradientColor2); 894 return gradient; 895 } : settings.barColor, 896 scaleColor: settings.scaleColor, 897 trackColor: settings.trackColor, 898 lineCap: settings.lineCap, 899 size: settings.size, 900 lineWidth: settings.lineWidth 901 }); 902 } 903 904
905 $(document).ready(function () { 906 if ($('.ekit-video-popup').length > 0) { 907 $('.ekit-video-popup').magnificPopup({ 908 disableOn: 700, 909 type: 'iframe', 910 mainClass: 'mfp-fade', 911 removalDelay: 160, 912 preloader: true, 913 fixedContentPos: false, 914 }); 915 } 916 917 if ($('#wp-admin-bar-elementor_edit_page-default').length > 0) { 918 var elements = $('#wp-admin-bar-elementor_edit_page-default').children('li'); 919 $(elements).map(function (__, element) { 920 var target = $(element).find(".elementor-edit-link-title"); 921 if (target.text().indexOf('dynamic-content-') !== -1) { 922 target.parent().parent().remove(); 923 } 924 }); 925 } 926 927 }); // end ready function 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.