PageSourceSearch

https://www.rivistablam.it/wp-content/plugins/elementskit-lite/widgets/init/assets/js/elementor.js?ver=1.3.1

js rivistablam.it collected 2026-10-03 22:11:35 UTC 36,372 bytes, 928 lines download raw bytes

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.