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