PageSourceSearch

https://www.mediatrainingworldwide.com/wp-content/plugins/droit-el…/modules/widgets/widgets.js

js mediatrainingworldwide.com collected 2026-10-02 06:20:58 UTC 66,952 bytes, 2,324 lines download raw bytes

1/** @format */
2'use strict';
3var $dLmap = {};
4
5// for dark mode map style
6let $darkModeStyles = [{
7		elementType: 'geometry',
8		stylers: [{
9			color: '#242f3e'
10		}]
11	},
12	{
13		elementType: 'labels.text.stroke',
14		stylers: [{
15			color: '#242f3e'
16		}]
17	},
18	{
19		elementType: 'labels.text.fill',
20		stylers: [{
21			color: '#746855'
22		}]
23	},
24	{
25		featureType: 'administrative.locality',
26		elementType: 'labels.text.fill',
27		stylers: [{
28			color: '#d59563'
29		}],
30	},
31	{
32		featureType: 'poi',
33		elementType: 'labels.text.fill',
34		stylers: [{
35			color: '#d59563'
36		}],
37	},
38	{
39		featureType: 'poi.park',
40		elementType: 'geometry',
41		stylers: [{
42			color: '#263c3f'
43		}],
44	},
45	{
46		featureType: 'poi.park',
47		elementType: 'labels.text.fill',
48		stylers: [{
49			color: '#6b9a76'
50		}],
51	},
52	{
53		featureType: 'road',
54		elementType: 'geometry',
55		stylers: [{
56			color: '#38414e'
57		}],
58	},
59	{
60		featureType: 'road',
61		elementType: 'geometry.stroke',
62		stylers: [{
63			color: '#212a37'
64		}],
65	},
66	{
67		featureType: 'road',
68		elementType: 'labels.text.fill',
69		stylers: [{
70			color: '#9ca5b3'
71		}],
72	},
73	{
74		featureType: 'road.highway',
75		elementType: 'geometry',
76		stylers: [{
77			color: '#746855'
78		}],
79	},
80	{
81		featureType: 'road.highway',
82		elementType: 'geometry.stroke',
83		stylers: [{
84			color: '#1f2835'
85		}],
86	},
87	{
88		featureType: 'road.highway',
89		elementType: 'labels.text.fill',
90		stylers: [{
91			color: '#f3d19c'
92		}],
93	},
94	{
95		featureType: 'transit',
96		elementType: 'geometry',
97		stylers: [{
98			color: '#2f3948'
99		}],
100	},
101	{
102		featureType: 'transit.station',
103		elementType: 'labels.text.fill',
104		stylers: [{
105			color: '#d59563'
106		}],
107	},
108	{
109		featureType: 'water',
110		elementType: 'geometry',
111		stylers: [{
112			color: '#17263c'
113		}],
114	},
115	{
116		featureType: 'water',
117		elementType: 'labels.text.fill',
118		stylers: [{
119			color: '#515c6d'
120		}],
121	},
122	{
123		featureType: 'water',
124		elementType: 'labels.text.stroke',
125		stylers: [{
126			color: '#17263c'
127		}],
128	},
129];
130
131// init map
132function initDlMap() {
133	document.querySelectorAll('.dladdons_gmap_pro').forEach(($v) => {
134		if ($v.getAttribute('data-mapid')) {
135			let $ids = $v.getAttribute('data-mapid');
136			$dLmap[$ids] = document.getElementById('map-' + $ids);
137		}
138	});
139}
140
141(function ($, elementor) {
142	var $window = $(elementor);
143	var droitElementsPro = {
144		onInit: function () {
145			var E_FRONT = elementorFrontend,
146				E_Modules = elementorModules;
147
148			var widgetHandlersMap = {
149				//"dladdons-countdown-pro.default": droitElementsPro._dl_pro_count_down,
150				'droit-teams.default': droitElementsPro._dl_pro_team,
151				'dladdons-animated-image.default': droitElementsPro._dl_pro_animated_img,
152				'droit-advance-accordions.default': droitElementsPro._dl_pro_accordions,
153				'droit-blogs.default': droitElementsPro._dl_pro_blogs,
154				'droit-blogs_grid.default': droitElementsPro._dl_pro_blog_grid,
155				'droit-tabs.default': droitElementsPro._dl_pro_tabs,
156				'droit-tabs-new.default': droitElementsPro._dl_pro_tabs_new,
157				'droit-image_compare.default': droitElementsPro._dl_pro_compare,
158				'droit-fun_fact.default': droitElementsPro._dl_pro_counterup,
159				'droit-advance_pricing.default': droitElementsPro._dl_pro_advance_pricing,
160				'droit-advance-pricing-toggle.default': droitElementsPro._dl_pro_advance_pricing_toggle,
161				'droit-adavnced-slider.default': droitElementsPro._dl_pro_advance_slider,
162				'dladdons-testimonial-pro.default': droitElementsPro._dl_pro_advance_slider,
163				'droit-video_popup.default': droitElementsPro._video_popup,
164				'dladdons-animate-title-pro.default': droitElementsPro.Animated_Heading,
165				// 'dladdons-post-slider-pro.default': droitElementsPro._dl_pro_advance_slider,
166				'dladdons-post-filter-gallery-pro.default': droitElementsPro._dl_pro_portfolio_isotope,
167				'droit-woo-filter.default': droitElementsPro._dl_pro_portfolio_isotope,
168				'dladdons-pricing-table.default': droitElementsPro._dl_pricing_theme,
169				'dladdons-post-slider-pro.default': droitElementsPro._dl_pro_advance_slider,
170				'dladdons-pinterest-pro.default': droitElementsPro.pinterest_isotope,
171				'dladdons-table-pricing.default': droitElementsPro.dl_table_pricing,
172				'dladdons-popup-modal-pro.default': droitElementsPro.dl_popup_modal,
173				'droit-woo-slider.default': droitElementsPro._dl_pro_advance_slider,
174				'droit-woo-product-cat-slider.default': droitElementsPro._dl_pro_advance_slider,
175				'dladdons-google-map-pro.default': droitElementsPro._dl_pro_advance_google_map,
176
177				// start charts map here
178				'droit-line-chart-pro.default': droitElementsPro.dl_pro_line_chart,
179				'droit-pie-chart-pro.default': droitElementsPro.dl_pro_pie_chart,
180				'droit-radar-chart-pro.default': droitElementsPro.dl_pro_radar_chart,
181				'droit-polararea-chart-pro.default': droitElementsPro.dl_pro_polararea_chart,
182				'droit-hotspot.default': droitElementsPro.dl_hotspot_pro,
183				'droit-woo-mini-cart.default': droitElementsPro.dl_pro_mini_cart,
184				'droit-woo-checkout.default': droitElementsPro.dl_pro_woo_checkout,
185				'droit-polararea-chart-pro.default': droitElementsPro.dl_pro_polararea_chart,
186				'droit-banner-slider.default': droitElementsPro._dl_pro_banner_slider,
187			};
188
189			$.each(widgetHandlersMap, function (widgetName, callback) {
190				E_FRONT.hooks.addAction(
191					'frontend/element_ready/' + widgetName,
192					callback
193				);
194			});
195		},
196
197		_dl_pro_count_down: function ($scope, t) {
198			var $selector = $scope.find('.droit-countdown-wrapper-pro'),
199				$countdown_id =
200				void 0 !== $selector.data('countdown-id') ?
201				$selector.data('countdown-id') :
202				'',
203				$end_type =
204				void 0 !== $selector.data('end-type') ?
205				$selector.data('end-type') :
206				'',
207				$end_title =
208				void 0 !== $selector.data('end-title') ?
209				$selector.data('end-title') :
210				'',
211				$end_text =
212				void 0 !== $selector.data('end-text') ?
213				$selector.data('end-text') :
214				'',
215				$redirect_url =
216				void 0 !== $selector.data('redirect-url') ?
217				$selector.data('redirect-url') :
218				'',
219				$item = $scope.find('#droit-countdown-pro-' + $countdown_id);
220			$item.countdown({
221				end: function () {
222					if ('text' == $end_type)
223						$item.html(
224							'<div class="droit-countdown-action-message"><h4 class="droit-countdown-end-title">' +
225							$end_title +
226							'</h4><div class="droit-countdown-end-text">' +
227							$end_text +
228							'</div></div>'
229						);
230					else if ('url' === $end_type) {
231						_dl_pro_count_down_redirect($redirect_url);
232					}
233				},
234			});
235		},
236
237		_dl_pro_team: function ($scope, t) {
238			var $selector = $scope.find('.mouse_move_animation');
239			if ($($selector).length > 0) {
240				$($selector).parallax({
241					scalarX: 10.0,
242					scalarY: 8.0
243				});
244			}
245		},
246		_dl_pro_accordions: function ($scope) {
247			var $accrodion = $scope.find('.dl_accordion');
248			if ($accrodion.length > 0) {
249				$accrodion
250					.find('.dl_accordion_item.is-active')
251					.children('.dl_accordion_panel')
252					.slideDown();
253				$accrodion.find('.dl_accordion_item').on('click', function () {
254					// Cancel the siblings
255					$(this)
256						.siblings('.dl_accordion_item')
257						.removeClass('is-active')
258						.children('.dl_accordion_panel')
259						.slideUp();
260					// Toggle the item
261					$(this)
262						.toggleClass('is-active')
263						.children('.dl_accordion_panel')
264						.slideToggle('ease-out');
265				});
266			}
267		},
268
269		_dl_pro_blogs: function ($scope, t, e) {
270			var $blogSelector = $scope.find('.droit__blog--wrap'),
271				pagination = $blogSelector.data('pagination'),
272				layout = $blogSelector.data('layout'),
273				pageNumber = 1;
274			if ('masonry' === layout) {
275				var $selector = $scope.find('.droit__blog---inner-wrap');
276				$selector.dlAddonsGridLayout();
277			}
278			if (pagination) {
279				$scope.on('click', '.page-numbers', function (e) {
280					e.preventDefault();
281					if ($(this).hasClass('current')) return;
282					var currentPage = parseInt(
283						$scope.find('.page-numbers.current').html()
284					);
285					if ($(this).hasClass('next')) {
286						pageNumber = currentPage + 1;
287					} else if ($(this).hasClass('prev')) {
288						pageNumber = currentPage - 1;
289					} else {
290						pageNumber = $(this).html();
291					}
292					getPostsByAjax(scrollAfter);
293				});
294			}
295			if ('tab' === layout) {
296				var a =
297					'#' + $scope.find('.droit-blog-tabs-container').attr('id').toString();
298				t(a + ' ul.dl_tab_menu > li').each(function (e) {
299						t(this).hasClass('active-default') ?
300							(t(a + ' ul.dl_tab_menu > li')
301								.removeClass('dl_active')
302								.addClass('dl_inactive'),
303								t(this).removeClass('dl_inactive')) :
304							0 == e &&
305							t(this).removeClass('dl_inactive').addClass('dl_active');
306					}),
307					t(a + ' .tab_container div').each(function (e) {
308						t(this).hasClass('active-default') ?
309							t(a + ' .tab_container > div').removeClass('dl_active') :
310							0 == e &&
311							t(this).removeClass('dl_inactive').addClass('dl_active');
312					}),
313					t(a + ' ul.dl_tab_menu > li').click(function () {
314						var e = t(this).index(),
315							a = t(this).closest('.droit-advance-tabs'),
316							n = t(a)
317							.children('.droit-tabs-nav')
318							.children('ul')
319							.children('li'),
320							i = t(a).children('.tab_container').children('div');
321						t(this).parent('li').addClass('dl_active'),
322							t(n)
323							.removeClass('dl_active active-default')
324							.addClass('dl_inactive'),
325							t(this).addClass('dl_active').removeClass('dl_inactive'),
326							t(i).removeClass('dl_active').addClass('dl_inactive'),
327							t(i).eq(e).addClass('dl_active').removeClass('dl_inactive');
328						t(i).each(function (e) {
329							t(this).removeClass('active-default');
330						});
331					});
332			}
333
334			function getPostsByAjax(shouldScroll) {
335				$.ajax({
336					url: dlpro.ajaxurl,
337					type: 'post',
338					data: {
339						action: 'droit_pro_get_posts',
340						page_id: $blogElement.data('page'),
341						widget_id: $scope.data('id'),
342						page_number: pageNumber,
343						nonce: dlpro.nonce,
344					},
345					beforeSend: function () {
346						console.log('before');
347					},
348					success: function (res) {
349						console.log('before');
350						if (!res.data) return;
351						var posts = res.data.posts,
352							paging = res.data.paging;
353						$blogElement.html(posts);
354						$scope.find('.droit-blog-footer').html(paging);
355					},
356					error: function (err) {
357						console.log(err);
358					},
359				});
360				return !1;
361			}
362		},
363		_dl_pro_blog_grid: function ($scope, t, e) {
364			var $blogSelector = $scope.find('.dl__blog--grid-inner'),
365				pagination = $blogSelector.data('pagination'),
366				layout = $blogSelector.data('layout'),
367				isLoaded = true,
368				pageNumber = 1;
369			if (pagination) {
370				$scope.on('click', '.page-numbers', function (e) {
371					e.preventDefault();
372					if ($(this).hasClass('current')) return;
373					var currentPage = parseInt(
374						$scope.find('.page-numbers.current').html()
375					);
376					if ($(this).hasClass('next')) {
377						pageNumber = currentPage + 1;
378					} else if ($(this).hasClass('prev')) {
379						pageNumber = currentPage - 1;
380					} else {
381						pageNumber = $(this).html();
382					}
383					gridPostsByAjax(false);
384				});
385			}
386
387			function gridPostsByAjax(shouldScroll) {
388				$.ajax({
389					url: dlpro.ajaxurl,
390					type: 'post',
391					data: {
392						action: 'droit_pro_get_grid_posts',
393						page_id: $blogSelector.data('page'),
394						widget_id: $scope.data('id'),
395						page_number: pageNumber,
396						nonce: dlpro.nonce,
397					},
398					beforeSend: function () {
399						//console.log("before");
400					},
401					success: function (res) {
402						if (!res.data) return;
403						var posts = res.data.posts,
404							paging = res.data.paging;
405						$blogSelector.html(posts);
406						$scope.find('.dl-grid-pagination').html(paging);
407					},
408					error: function (err) {
409						// console.log(err);
410					},
411				});
412				return !1;
413			}
414
415			function getInfiniteScrollPosts() {
416				var windowHeight = jQuery(window).outerHeight() / 1.25;
417
418				$(window).scroll(function () {
419					if (filterTabs) {
420						$blogPost = $blogSelector.find('.blog-grid-item');
421						total = $blogPost.data('total');
422					}
423
424					if (count <= total) {
425						if (
426							$(window).scrollTop() + windowHeight >=
427							$scope.find('.blog-grid-item:last').offset().top
428						) {
429							if (true == isLoaded) {
430								pageNumber = count;
431								gridPostsByAjax(false);
432								count++;
433								isLoaded = false;
434							}
435						}
436					}
437				});
438			}
439		},
440		_dl_pro_tabs: function ($scope, t, e) {
441			var a = '#' + $scope.find('.dl_tab_container').attr('id').toString();
442			t(a + ' ul.dl_tab_menu > li').each(function (e) {
443					t(this).hasClass('active-default') ?
444						(t(a + ' ul.dl_tab_menu > li')
445							.removeClass('dl_active')
446							.addClass('dl_inactive'),
447							t(this).removeClass('dl_inactive')) :
448						0 == e && t(this).removeClass('dl_inactive').addClass('dl_active');
449				}),
450				t(a + ' .tab_container div').each(function (e) {
451					t(this).hasClass('active-default') ?
452						t(a + ' .tab_container > div').removeClass('dl_active') :
453						0 == e &&
454						t(this).removeClass('dl_inactive').addClass('dl_active');
455				}),
456				t(a + ' ul.dl_tab_menu > li').click(function () {
457					var e = t(this).index(),
458						a = t(this).closest('.droit-advance-tabs'),
459						n = t(a).children('.droit-tabs-nav').children('ul').children('li'),
460						i = t(a).children('.tab_container').children('div');
461					t(this).parent('li').addClass('dl_active'),
462						t(n)
463						.removeClass('dl_active active-default')
464						.addClass('dl_inactive'),
465						t(this).addClass('dl_active').removeClass('dl_inactive'),
466						t(i).removeClass('dl_active').addClass('dl_inactive'),
467						t(i).eq(e).addClass('dl_active').removeClass('dl_inactive');
468					t(i).each(function (e) {
469						t(this).removeClass('active-default');
470					});
471				});
472		},
473		_dl_pro_tabs_new: function ($scope, t, e) {
474			
475			var a = '#' + $scope.find('.dl_tab_container').attr('id').toString();
476
477			t(a + ' ul.dl_tab_menu > li').each(function (e) {
478				t(this).hasClass('active-default') ?
479					(t(a + ' ul.dl_tab_menu > li')
480						.removeClass('dl_active')
481						.addClass('dl_inactive'),
482						t(this).removeClass('dl_inactive')) :
483					0 == e && t(this).removeClass('dl_inactive').addClass('dl_active');
484				
485				var selector = t(this).data('selector');
486				if(selector){
487					t( selector).hide();
488					if( t(this).hasClass('dl_active') ){
489						t( selector).show();
490					}
491				}
492				
493			});
494			
495			t(a + ' ul.dl_tab_menu > li').click(function () {
496
497				var e = t(this).index(),
498					aa = t(this).closest('.droit-advance-tabs'),
499					n = t(aa).children('.droit-tabs-nav').children('ul').children('li');
500
501				t(this).parent('li').addClass('dl_active'),
502					t(n)
503					.removeClass('dl_active active-default')
504					.addClass('dl_inactive'),
505					t(this).addClass('dl_active').removeClass('dl_inactive');
506
507				var $this = t(this),
508				selector = $this.data('selector');
509				t(a + ' ul.dl_tab_menu > li').each(function () {
510					let $tSelector = $(this).data('selector');
511					$( $tSelector ).hide();
512				});
513				t( selector ).show();
514				
515			});
516		},
517		_dl_pro_compare: function ($scope) {
518			var $selector = $scope.find('.dl_image_swipe'),
519				controls = null,
520				before_label = 'Before',
521				after_label = 'After',
522				orientation_style = '',
523				overlay = false,
524				move = true,
525				offset = 0.5,
526				_icon_type = '',
527				left_icon = 'fas fa-chevron-left',
528				right_icon = 'fas fa-chevron-right';
529
530			if ($selector.attr('data-controls')) {
531				var controls = JSON.parse($selector.attr('data-controls'));
532				before_label = controls.before;
533				after_label = controls.after;
534				move = controls.move == 'yes' ? true : false;
535				overlay =
536					move == 'yes' ? false : controls.overlay == 'yes' ? true : false;
537				orientation_style = controls.orientation;
538				offset = controls.offset;
539				_icon_type = controls.icon_type;
540				left_icon = controls.left_icon;
541				right_icon = controls.right_icon;
542			}
543			var $obj = {};
544			$obj.before_label = before_label;
545			$obj.after_label = after_label;
546			$obj.orientation = orientation_style;
547			$obj.no_overlay = overlay;
548			$obj.move_slider_on_hover = move;
549			$obj.default_offset_pct = offset;
550			$obj._icon_type = _icon_type;
551			$obj.left_icon = left_icon;
552			$obj.right_icon = right_icon;
553			if ($($selector).length) {
554				$($selector).imagesLoaded(function () {
555					$($selector).twentytwenty($obj);
556				});
557			}
558
559			let $id = $selector.attr('id');
560			let $idSelector = document.querySelector('#' + $id);
561			if ($idSelector) {
562				let $before = $idSelector.querySelector('img').offsetWidth;
563				$scope.find('.dl_product_compaire').css('width', $before + 'px');
564			}
565		},
566
567		_dl_pro_counterup: function ($scope) {
568			var $selector = $scope.find('.dl-fun-fact-wrapper'),
569				$selector_id = '#' + $selector.attr('id').toString(),
570				controls = null,
571				delay = 10,
572				timer = 1000;
573			if ($selector.attr('data-controls')) {
574				var controls = JSON.parse($selector.attr('data-controls'));
575				delay = controls.delay;
576				timer = controls.timer;
577			}
578			if ($selector_id.length > 0) {
579				$($selector_id + ' .fun-counter').counterUp({
580					delay: delay,
581					time: timer,
582				});
583			}
584		},
585
586		_dl_pro_advance_pricing: function ($scope) {
587			var t = $scope.find('.dl_switcher_control-item'),
588				h = $scope.find('.dl_switcher_content-item');
589			// tab style
590			t.click(function (e) {
591				e.preventDefault();
592				var $this = $(this);
593
594				// close all switcher active class
595				t.each(function () {
596					let $self = $(this);
597					$self.removeClass('on-select');
598				});
599
600				// close all content tab
601				h.each(function () {
602					let $self = $(this);
603					$self.removeClass('on-active');
604				});
605
606				// selector content
607				let $target = $this.data('target');
608				let $content = $scope.find('[data-toggle=' + $target + ']');
609				$content.addClass('on-active');
610				// selected tab
611				$this.addClass('on-select');
612			});
613
614			// switch style
615			var s = $scope.find('.dl_toggle');
616			s.click(function (e) {
617				e.preventDefault();
618				var $this = $(this);
619				$this.toggleClass('dl-active');
620				$this.parents('.dl_switcher_control').toggleClass('dl-active');
621
622				// content
623				h.each(function () {
624					let $self = $(this);
625					$self.toggleClass('on-active');
626				});
627			});
628		},
629
630		_dl_pro_advance_pricing_toggle: function ($scope) {
631			var t = $scope.find('.dl_switcher_control-item'),
632				h = $scope.find('.dl_switcher_content-item'),
633				switcher = $scope.find('.dl_pricing_plan_switcher'),
634				settings = switcher.data('settings'),
635				annualCon = ( settings && settings.a_selector.includes('.') ) ? $(settings.a_selector) : '',
636				lifetimeCon = ( settings && settings.lt_selector.includes('.') ) ? $(settings.lt_selector) : '';
637				if ( settings && lifetimeCon ) {
638					lifetimeCon.hide();
639				}
640
641				// tab style
642				t.click(function (e) {
643					e.preventDefault();
644					var $this = $(this);
645
646					// close all switcher active class
647					t.each(function () {
648						let $self = $(this);
649						$self.removeClass('on-select');
650					});
651
652					t.each(function () {
653						let $tTarget = $(this).data('target');
654						$( $tTarget ).hide();
655					});
656
657					// selector content
658					let $target = $this.data('target');
659					$( $target ).show();
660					// selected tab
661					$this.addClass('on-select');
662				});
663
664				// switch style
665				var s = $scope.find('.dl_toggle');
666				s.click(function (e) {
667					e.preventDefault();
668					var $this = $(this);
669					$this.toggleClass('dl-active');
670					$this.parents('.dl_switcher_control').toggleClass('dl-active');
671
672					// content
673					// h.each(function () {
674					// 	let $self = $(this);
675					// 	$self.toggleClass('on-active');
676					// });
677
678					if ($this.hasClass('dl-active')) {
679						annualCon.hide();
680						lifetimeCon.show();
681					} else {
682						annualCon.show();
683						lifetimeCon.hide();
684					}
685
686				});
687		},
688
689		_dl_pro_advance_slider: function ($scope) {
690			var $slider = $scope.find(
691					'.dl_advance_slider, .dl_pro_testimonial_slider, .dl_pro_post_slider, .dl_pro_wooslider, .dl_product_category_slider'
692				),
693				$item = $scope.find('.swiper-slide'),
694				$dat = $slider.data('settings');
695
696			let $breakPoints = $dat.breakpoints ? $dat.breakpoints : {};
697
698			// render slider
699			swiperLoader( $slider, $dat ).then( ( swiper ) => {
700
701				// auto slider
702				if ($dat.dl_mouseover) {
703					$slider.hover(
704						function () {
705							swiper.autoplay.stop();
706						},
707						function () {
708							swiper.autoplay.start();
709						}
710					);
711				}
712
713				if ($dat.dl_autoplay) {
714					$slider.each(function () {
715						swiper.autoplay.start();
716					});
717				} else {
718					$slider.each(function () {
719						swiper.autoplay.stop();
720					});
721				}
722
723			});
724
725			let $delay = $dat.speed;
726			if ($dat.autoplay) {
727				$delay = $dat.autoplay.delay;
728			}
729
730			window.addEventListener('resize', function () {
731				droitElementsPro.autoloadMedia($breakPoints, $scope);
732			});
733			// auto load media
734			droitElementsPro.autoloadMedia($breakPoints, $scope);
735		},
736		autoloadMedia: function ($breakPoints, $scope) {
737			let $pagi = $scope.find('.dl_swiper_adv_pagination');
738			let $nav = $scope.find('.dl_adv_swiper_navigation');
739			if (Object.entries($breakPoints)) {
740				for (const [$k, $v] of Object.entries($breakPoints)) {
741					function matchBreakPoint(x) {
742						if (x.matches) {
743							let $nv = $v.navigation ? $v.navigation : {
744								enable: true
745							};
746							if (!$nv.enable) {
747								if ($nav) {
748									$nav.addClass('swiper-button-disabled');
749								}
750							}
751							let $pg = $v.pagination ? $v.pagination : {
752								enable: true
753							};
754							if (!$pg.enable) {
755								if ($pagi) {
756									$pagi.addClass('swiper-button-disabled');
757								}
758							}
759						} else {
760							if ($nav) {
761								$nav.removeClass('swiper-button-disabled');
762							}
763							if ($pagi) {
764								$pagi.removeClass('swiper-button-disabled');
765							}
766						}
767					}
768					var $media = window.matchMedia('(max-width: ' + $k + 'px)');
769					matchBreakPoint($media);
770					$media.addListener(matchBreakPoint);
771				}
772			}
773		},
774
775		_dl_pro_animated_img: function ($scope) {
776			var $parallax_img = $scope.find('.droit_parallax_img_wrapper'),
777				$parallax_data = $parallax_img.data('settings');
778		},
779
780		_video_popup: function ($scope) {
781			var $selector = $scope.find('.droit-video-popup');
782			if ($selector.length > 0) {
783				$($selector).magnificPopup({
784					type: 'iframe',
785					mainClass: 'mfp-fade',
786					removalDelay: 160,
787					preloader: !0,
788					fixedContentPos: !1,
789				});
790			}
791		},
792
793		_dl_pro_portfolio_gallery: function ($scope) {
794			var $gallery = $scope.find('.zoom-gallery');
795			$($gallery).magnificPopup({
796				delegate: '.popup_image',
797				type: 'image',
798				closeOnContentClick: false,
799				closeBtnInside: false,
800				mainClass: 'mfp-with-zoom mfp-img-mobile',
801				gallery: {
802					enabled: true,
803					navigateByImgClick: true,
804					preload: [0, 1],
805				},
806				zoom: {
807					enabled: true,
808					duration: 300, // don't foget to change the duration also in CSS
809					opener: function (element) {
810						return element.find('img');
811					},
812				},
813			});
814		},
815
816		_dl_pro_portfolio_isotope: function ($scope) {
817			if (window.elementorFrontend) {
818				var $element_grid = $scope.find('.element_grid').isotope({
819					itemSelector: '.element-item',
820					layoutMode: 'fitRows',
821				});
822
823				var filterFns = {
824					numberGreaterThan50: function () {
825						var number = $(this).find('.number').text();
826						return parseInt(number, 10) > 50;
827					},
828					ium: function () {
829						var name = $(this).find('.name').text();
830						return name.match(/ium$/);
831					},
832				};
833
834				$scope.find('.filter-btns-group').on('click', 'button', function () {
835					var filterValue = $(this).attr('data-filter');
836					filterValue = filterFns[filterValue] || filterValue;
837					$element_grid.isotope({
838						filter: filterValue,
839					});
840				});
841				$scope.find('.button-group').each(function (i, buttonGroup) {
842					var $buttonGroup = $(buttonGroup);
843					$buttonGroup.on('click', 'button', function () {
844						$buttonGroup.find('.active').removeClass('active');
845						$(this).addClass('active');
846					});
847				});
848
849				function portfolioMasonry() {
850					var portfolio = $scope.find('.masonry_portfolio');
851
852					if (portfolio.length) {
853						console.log('Hi');
854						portfolio.imagesLoaded(function () {
855							portfolio.isotope({
856								itemSelector: '.element-item',
857								layoutMode: 'masonry',
858								filter: '*',
859								animationOptions: {
860									duration: 1000,
861								},
862								transitionDuration: '0.5s',
863								masonry: {},
864							});
865
866							$('.filter-btns-group > ul > li > button').on(
867								'click',
868								function () {
869									$('.filter-btns-group > ul > li > button').removeClass(
870										'active'
871									);
872									$(this).addClass('active');
873
874									var selector = $(this).attr('data-filter');
875									portfolio.isotope({
876										filter: selector,
877										animationOptions: {
878											animationDuration: 750,
879											easing: 'linear',
880											queue: false,
881										},
882									});
883									return false;
884								}
885							);
886						});
887					}
888				}
889				portfolioMasonry();
890			}
891		},
892
893		pinterest_isotope: function ($scope) {
894			if (window.elementorFrontend) {
895				var $element_grid = $scope.find('.dlab-layout-masonry').isotope({
896					itemSelector: '.alignment-center',
897					layoutMode: 'masonry',
898				});
899			}
900		},
901		_dl_pricing_theme: function () {
902			$('.dl_table_nav').on('click', 'button', function () {
903				var pos = $(this).index() + 2;
904				$('tr').find('td:not(:eq(0))').hide();
905				$('td:nth-child(' + pos + ')').css('display', 'table-cell');
906				$('tr').find('th:not(:eq(0))').hide();
907				$('button').removeClass('active');
908				$(this).addClass('active');
909			});
910		},
911		// Animated Heading
912		Animated_Heading: function ($scope) {
913			var $item = $scope.find('.dl_animated_headline'),
914				$animationDelay = $item.data('animation-delay');
915			droitAnimatedText({
916				selector: $item,
917				animationDelay: $animationDelay,
918			});
919		},
920
921		dl_table_pricing: function ($scope) {
922			var $item = $scope.find('.dltable-nav-secletor');
923
924			if ($item.length > 0) {
925				$($item).on('click', 'button', function (e) {
926					e.preventDefault();
927					var $this = $(this);
928					var $data = $this.data('tdnav');
929
930					var $tbody = $scope.find(
931						'table td:not(.package_design), table th:not(.package_design)'
932					);
933
934					if ($tbody.length > 0) {
935						var i = 0;
936						for (; i < $tbody.length; i++) {
937							$tbody[i].setAttribute('style', 'display: none;');
938						}
939					}
940
941					var $open = $scope.find(
942						'table td.dltd-' + $data + ', table th.dlth-' + $data
943					);
944
945					if ($open.length > 0) {
946						var j = 0;
947						for (; j < $open.length; j++) {
948							$open[j].setAttribute('style', 'display: table-cell;');
949						}
950					}
951					var $active = $scope.find('.dltable-nav-secletor button');
952					if ($active.length > 0) {
953						var i = 0;
954						for (; i < $active.length; i++) {
955							$active[i].removeAttribute('class');
956						}
957					}
958					$this.attr('class', 'dl-active');
959				});
960
961				var $media = window.matchMedia('(max-width: 768px)');
962				$media.addListener(function (x) {
963					if (x.matches) {
964						var $active = $scope.find('.dltable-nav-secletor button.dl-active');
965						if ($active.length > 0) {
966							var $this = $active[0];
967							var $data = $this.getAttribute('data-tdnav');
968
969							var $open1 = $scope.find(
970								'table td.dltd-' + $data + ', table th.dlth-' + $data
971							);
972
973							if ($open1.length > 0) {
974								var j = 0;
975								for (; j < $open1.length; j++) {
976									$open1[j].setAttribute('style', 'display: table-cell;');
977								}
978							}
979						}
980					}
981				});
982			}
983		},
984
985		dl_popup_modal: function ($scope) {
986			var $wrap = $scope.find('.dladdons-popup-modal');
987			if ($wrap.length > 0) {
988				$($wrap).on('click', 'a', function (e) {
989					e.preventDefault();
990					var $this = $(this);
991					var $modal = $wrap.find('.dladdons-popup-modal-wrapper');
992					if ($modal.length > 0) {
993						$modal.addClass('dl-modal-fullscreen').addClass('dl-modal-show');
994						var $ani = $modal.data('animation');
995						if ($ani.type) {
996							var $content = $modal.find('.dladdons-modal-popup-content');
997							$content.addClass('animated').addClass($ani.type);
998						}
999					}
1000				});
1001
1002				$($wrap).on(
1003					'click',
1004					'.dladdons-popup-close, .dladdons-modal-popup-overlay',
1005					function (e) {
1006						e.preventDefault();
1007						var $this = $(this);
1008						console.log($this);
1009						var $modal = $wrap.find('.dladdons-popup-modal-wrapper');
1010						if ($modal.length > 0) {
1011							$modal
1012								.removeClass('dl-modal-fullscreen')
1013								.removeClass('dl-modal-show');
1014							var $ani = $modal.data('animation');
1015							if ($ani.type) {
1016								var $content = $modal.find('.dladdons-modal-popup-content');
1017								$content.removeClass('animated').removeClass($ani.type);
1018							}
1019						}
1020					}
1021				);
1022			}
1023		},
1024
1025		// for advance google map
1026
1027		_dl_pro_advance_google_map: function ($scope) {
1028			// initilize setup map
1029			initDlMap();
1030
1031			// get settings & init map data
1032			var $wrap = $scope.find('.dladdons_gmap_pro');
1033			let $ids = $wrap.data('mapid');
1034			let $settings = $wrap.data('settings');
1035
1036			if (!$settings) {
1037				return;
1038			}
1039
1040			let $map;
1041
1042			// console.log( 'map settings ', $settings );
1043
1044			let $center = $settings.hasOwnProperty('center') ?
1045				$settings.center :
1046				{
1047					lat: 40.76,
1048					lng: -73.983
1049				},
1050				$cm_title = $settings.hasOwnProperty('cm_title') ?
1051				$settings.cm_title :
1052				'',
1053				$cm_marker = $settings.hasOwnProperty('cm_marker') ?
1054				$settings.cm_marker :
1055				'',
1056				$cm_width =
1057				$settings.hasOwnProperty('cm_width') && $settings.cm_width > 0 ?
1058				$settings.cm_width :
1059				35,
1060				$cm_height =
1061				$settings.hasOwnProperty('cm_height') && $settings.cm_height > 0 ?
1062				$settings.cm_height :
1063				40,
1064				$cm_label = $settings.hasOwnProperty('cm_label') ?
1065				$settings.cm_label :
1066				'',
1067				$mode = $settings.hasOwnProperty('mode') ? $settings.mode : 'view',
1068				$center_name = $settings.hasOwnProperty('center_name') ?
1069				$settings.center_name :
1070				'New york',
1071				$mtype = $settings.hasOwnProperty('mtype') ?
1072				$settings.mtype :
1073				'roadmap',
1074				$dark_mode = $settings.hasOwnProperty('dark_mode') ?
1075				$settings.dark_mode :
1076				'no',
1077				$streetview_with_map = $settings.hasOwnProperty('streetview_with_map') ?
1078				$settings.streetview_with_map :
1079				'no',
1080				$streetview_pan = $settings.hasOwnProperty('streetview_pan') ?
1081				$settings.streetview_pan :
1082				'no',
1083				$streetview_link = $settings.hasOwnProperty('streetview_link') ?
1084				$settings.streetview_link :
1085				'no',
1086				$zoom_control = $settings.hasOwnProperty('zoom_control') ?
1087				$settings.zoom_control :
1088				'no',
1089				$scale_control = $settings.hasOwnProperty('scale_control') ?
1090				$settings.scale_control :
1091				'no',
1092				$fullscr_control = $settings.hasOwnProperty('fullscr_control') ?
1093				$settings.fullscr_control :
1094				'no',
1095				$maptype_control = $settings.hasOwnProperty('maptype_control') ?
1096				$settings.maptype_control :
1097				'no',
1098				$maptype_position = $settings.hasOwnProperty('maptype_position') ?
1099				$settings.maptype_position :
1100				'LEFT_TOP',
1101				$zoom = $settings.hasOwnProperty('zoom') ? $settings.zoom : 6,
1102				$markers_labels = $settings.hasOwnProperty('markers_labels') ?
1103				$settings.markers_labels :
1104				'',
1105				$markers_location = $settings.hasOwnProperty('markers_location') ?
1106				$settings.markers_location :
1107				[],
1108				// for directions settings
1109				$direction_origin = $settings.hasOwnProperty('direction_origin') ?
1110				$settings.direction_origin :
1111				'',
1112				$direction_destination = $settings.hasOwnProperty(
1113					'direction_destination'
1114				) ?
1115				$settings.direction_destination :
1116				'',
1117				$direction_waypoints = $settings.hasOwnProperty('direction_waypoints') ?
1118				$settings.direction_waypoints :
1119				[],
1120				$direction_alternative_route = $settings.hasOwnProperty(
1121					'direction_alternative_route'
1122				) ?
1123				$settings.direction_alternative_route :
1124				'',
1125				$direction_travel_mode = $settings.hasOwnProperty(
1126					'direction_travel_mode'
1127				) ?
1128				$settings.direction_travel_mode :
1129				'',
1130				$direction_unit_system = $settings.hasOwnProperty(
1131					'direction_unit_system'
1132				) ?
1133				$settings.direction_unit_system :
1134				'',
1135				$direction_optimiz_waypoints = $settings.hasOwnProperty(
1136					'direction_optimiz_waypoints'
1137				) ?
1138				$settings.direction_optimiz_waypoints :
1139				'',
1140				$direction_avoid_ferries = $settings.hasOwnProperty(
1141					'direction_avoid_ferries'
1142				) ?
1143				$settings.direction_avoid_ferries :
1144				'',
1145				$direction_avoid_highways = $settings.hasOwnProperty(
1146					'direction_avoid_highways'
1147				) ?
1148				$settings.direction_avoid_highways :
1149				'',
1150				$direction_avoid_tolls = $settings.hasOwnProperty(
1151					'direction_avoid_tolls'
1152				) ?
1153				$settings.direction_avoid_tolls :
1154				'',
1155				// get style setting
1156				$administrative_color = $settings.hasOwnProperty('administrative_color') ?
1157				$settings.administrative_color :
1158				'',
1159				$water_color = $settings.hasOwnProperty('water_color') ?
1160				$settings.water_color :
1161				'',
1162				$roads_color = $settings.hasOwnProperty('roads_color') ?
1163				$settings.roads_color :
1164				'',
1165				$roads_arterial_color = $settings.hasOwnProperty('roads_arterial_color') ?
1166				$settings.roads_arterial_color :
1167				'',
1168				$roads_highway_access_color = $settings.hasOwnProperty(
1169					'roads_highway_access_color'
1170				) ?
1171				$settings.roads_highway_access_color :
1172				'',
1173				$roads_highway_color = $settings.hasOwnProperty('roads_highway_color') ?
1174				$settings.roads_highway_color :
1175				'',
1176				$roads_local_color = $settings.hasOwnProperty('roads_local_color') ?
1177				$settings.roads_local_color :
1178				'',
1179				$points_color = $settings.hasOwnProperty('points_color') ?
1180				$settings.points_color :
1181				'',
1182				$points_attraction_color = $settings.hasOwnProperty(
1183					'points_attraction_color'
1184				) ?
1185				$settings.points_attraction_color :
1186				'',
1187				$points_business_color = $settings.hasOwnProperty(
1188					'points_business_color'
1189				) ?
1190				$settings.points_business_color :
1191				'',
1192				$points_government_color = $settings.hasOwnProperty(
1193					'points_government_color'
1194				) ?
1195				$settings.points_government_color :
1196				'',
1197				$points_medical_color = $settings.hasOwnProperty('points_medical_color') ?
1198				$settings.points_medical_color :
1199				'',
1200				$points_park_color = $settings.hasOwnProperty('points_park_color') ?
1201				$settings.points_park_color :
1202				'',
1203				$points_worship_color = $settings.hasOwnProperty('points_worship_color') ?
1204				$settings.points_worship_color :
1205				'',
1206				$points_school_color = $settings.hasOwnProperty('points_school_color') ?
1207				$settings.points_school_color :
1208				'',
1209				$points_sports_color = $settings.hasOwnProperty('points_sports_color') ?
1210				$settings.points_sports_color :
1211				'',
1212				$transits_color = $settings.hasOwnProperty('transits_color') ?
1213				$settings.transits_color :
1214				'',
1215				$transits_line_color = $settings.hasOwnProperty('transits_line_color') ?
1216				$settings.transits_line_color :
1217				'',
1218				$transits_station_color = $settings.hasOwnProperty(
1219					'transits_station_color'
1220				) ?
1221				$settings.transits_station_color :
1222				'',
1223				$transits_airport_color = $settings.hasOwnProperty(
1224					'transits_airport_color'
1225				) ?
1226				$settings.transits_airport_color :
1227				'',
1228				$transits_bus_color = $settings.hasOwnProperty('transits_bus_color') ?
1229				$settings.transits_bus_color :
1230				'',
1231				$transits_rail_color = $settings.hasOwnProperty('transits_rail_color') ?
1232				$settings.transits_rail_color :
1233				'',
1234				$landscape_color = $settings.hasOwnProperty('landscape_color') ?
1235				$settings.landscape_color :
1236				'',
1237				$landscape_man_made_color = $settings.hasOwnProperty(
1238					'landscape_man_made_color'
1239				) ?
1240				$settings.landscape_man_made_color :
1241				'',
1242				$landscape_natural_color = $settings.hasOwnProperty(
1243					'landscape_natural_color'
1244				) ?
1245				$settings.landscape_natural_color :
1246				'',
1247				$landscape_landcover_color = $settings.hasOwnProperty(
1248					'landscape_landcover_color'
1249				) ?
1250				$settings.landscape_landcover_color :
1251				'',
1252				$landscape_terrain_color = $settings.hasOwnProperty(
1253					'landscape_terrain_color'
1254				) ?
1255				$settings.landscape_terrain_color :
1256				'';
1257
1258			// console.log( 'map settings ', $settings );
1259
1260			let $mapEl = $dLmap[$ids] ? $dLmap[$ids] : false;
1261
1262			if ($mapEl) {
1263				let $mcenter = {};
1264
1265				// start init map styles here ...
1266				let $stylesArray = [];
1267
1268				// administrative styles
1269				if ($administrative_color !== '') {
1270					let $administrativeStyle = {
1271						featureType: 'administrative',
1272						stylers: [{
1273							color: $administrative_color
1274						}],
1275					};
1276
1277					$stylesArray.push($administrativeStyle);
1278				}
1279
1280				// start water styles
1281				if ($water_color !== '') {
1282					let $waterStyle = {
1283						featureType: 'water',
1284						stylers: [{
1285							color: $water_color
1286						}],
1287					};
1288
1289					$stylesArray.push($waterStyle);
1290				}
1291
1292				// start roads styles
1293				if ($roads_color !== '') {
1294					let $roadStyle = {
1295						featureType: 'road',
1296						// elementType : 'geometry',
1297						stylers: [{
1298							color: $roads_color
1299						}],
1300					};
1301					$stylesArray.push($roadStyle);
1302				} else {
1303					if ($roads_arterial_color !== '') {
1304						let $roadStyle = {
1305							featureType: 'road.arterial',
1306							stylers: [{
1307								color: $roads_arterial_color
1308							}],
1309						};
1310						$stylesArray.push($roadStyle);
1311					}
1312					if ($roads_highway_color !== '') {
1313						let $roadStyle = {
1314							featureType: 'road.highway',
1315							stylers: [{
1316								color: $roads_highway_color
1317							}],
1318						};
1319						$stylesArray.push($roadStyle);
1320					}
1321					if ($roads_highway_access_color !== '') {
1322						let $roadStyle = {
1323							featureType: 'road.highway.controlled_access',
1324							stylers: [{
1325								color: $roads_highway_access_color
1326							}],
1327						};
1328						$stylesArray.push($roadStyle);
1329					}
1330					if ($roads_local_color !== '') {
1331						let $roadStyle = {
1332							featureType: 'road.local',
1333							stylers: [{
1334								color: $roads_local_color
1335							}],
1336						};
1337						$stylesArray.push($roadStyle);
1338					}
1339				}
1340
1341				// start points styles here ..
1342				if ($points_color !== '') {
1343					let $pointStyle = {
1344						featureType: 'poi',
1345						stylers: [{
1346							color: $points_color
1347						}],
1348					};
1349					$stylesArray.push($pointStyle);
1350				} else {
1351					if ($points_attraction_color !== '') {
1352						let $pointStyle = {
1353							featureType: 'poi.attraction',
1354							stylers: [{
1355								color: $points_attraction_color
1356							}],
1357						};
1358						$stylesArray.push($pointStyle);
1359					}
1360					if ($points_business_color !== '') {
1361						let $pointStyle = {
1362							featureType: 'poi.business',
1363							stylers: [{
1364								color: $points_business_color
1365							}],
1366						};
1367						$stylesArray.push($pointStyle);
1368					}
1369					if ($points_government_color !== '') {
1370						let $pointStyle = {
1371							featureType: 'poi.government',
1372							stylers: [{
1373								color: $points_government_color
1374							}],
1375						};
1376						$stylesArray.push($pointStyle);
1377					}
1378					if ($points_medical_color !== '') {
1379						let $pointStyle = {
1380							featureType: 'poi.medical',
1381							stylers: [{
1382								color: $points_medical_color
1383							}],
1384						};
1385						$stylesArray.push($pointStyle);
1386					}
1387					if ($points_park_color !== '') {
1388						let $pointStyle = {
1389							featureType: 'poi.park',
1390							stylers: [{
1391								color: $points_park_color
1392							}],
1393						};
1394						$stylesArray.push($pointStyle);
1395					}
1396					if ($points_worship_color !== '') {
1397						let $pointStyle = {
1398							featureType: 'poi.place_of_worship',
1399							stylers: [{
1400								color: $points_worship_color
1401							}],
1402						};
1403						$stylesArray.push($pointStyle);
1404					}
1405					if ($points_school_color !== '') {
1406						let $pointStyle = {
1407							featureType: 'poi.school',
1408							stylers: [{
1409								color: $points_school_color
1410							}],
1411						};
1412						$stylesArray.push($pointStyle);
1413					}
1414					if ($points_sports_color !== '') {
1415						let $pointStyle = {
1416							featureType: 'poi.sports_complex',
1417							stylers: [{
1418								color: $points_sports_color
1419							}],
1420						};
1421						$stylesArray.push($pointStyle);
1422					}
1423				}
1424
1425				// start transits style here
1426				if ($transits_color !== '') {
1427					let $transitsStyle = {
1428						featureType: 'transit',
1429						stylers: [{
1430							color: $transits_color
1431						}],
1432					};
1433					$stylesArray.push($transitsStyle);
1434				} else {
1435					if ($transits_line_color !== '') {
1436						let $transitsStyle = {
1437							featureType: 'transit.line',
1438							stylers: [{
1439								color: $transits_line_color
1440							}],
1441						};
1442						$stylesArray.push($transitsStyle);
1443					}
1444					if ($transits_station_color !== '') {
1445						let $transitsStyle = {
1446							featureType: 'transit.station',
1447							stylers: [{
1448								color: $transits_station_color
1449							}],
1450						};
1451						$stylesArray.push($transitsStyle);
1452					}
1453					if ($transits_airport_color !== '') {
1454						let $transitsStyle = {
1455							featureType: 'transit.station.airport',
1456							stylers: [{
1457								color: $transits_airport_color
1458							}],
1459						};
1460						$stylesArray.push($transitsStyle);
1461					}
1462					if ($transits_bus_color !== '') {
1463						let $transitsStyle = {
1464							featureType: 'transit.station.bus',
1465							stylers: [{
1466								color: $transits_bus_color
1467							}],
1468						};
1469						$stylesArray.push($transitsStyle);
1470					}
1471					if ($transits_rail_color !== '') {
1472						let $transitsStyle = {
1473							featureType: 'transit.station.rail',
1474							stylers: [{
1475								color: $transits_rail_color
1476							}],
1477						};
1478						$stylesArray.push($transitsStyle);
1479					}
1480				}
1481
1482				// start landscape styles
1483				if ($landscape_color !== '') {
1484					let $landscapeStyle = {
1485						featureType: 'landscape',
1486						stylers: [{
1487							color: $landscape_color
1488						}],
1489					};
1490					$stylesArray.push($landscapeStyle);
1491				} else {
1492					if ($landscape_man_made_color !== '') {
1493						let $landscapeStyle = {
1494							featureType: 'landscape.man_made',
1495							stylers: [{
1496								color: $landscape_man_made_color
1497							}],
1498						};
1499						$stylesArray.push($landscapeStyle);
1500					}
1501					if ($landscape_natural_color !== '') {
1502						let $landscapeStyle = {
1503							featureType: 'landscape.natural',
1504							stylers: [{
1505								color: $landscape_natural_color
1506							}],
1507						};
1508						$stylesArray.push($landscapeStyle);
1509					}
1510					if ($landscape_landcover_color !== '') {
1511						let $landscapeStyle = {
1512							featureType: 'landscape.natural.landcover',
1513							stylers: [{
1514								color: $landscape_landcover_color
1515							}],
1516						};
1517						$stylesArray.push($landscapeStyle);
1518					}
1519					if ($landscape_terrain_color !== '') {
1520						let $landscapeStyle = {
1521							featureType: 'landscape.natural.terrain',
1522							stylers: [{
1523								color: $landscape_terrain_color
1524							}],
1525						};
1526						$stylesArray.push($landscapeStyle);
1527					}
1528				}
1529
1530				// init map here
1531
1532				var $mapOptions = {
1533					zoom: $zoom,
1534				};
1535
1536				$mapOptions.zoomControl = $zoom_control == 'yes' ? true : false;
1537				$mapOptions.scaleControl = $scale_control == 'yes' ? true : false;
1538				$mapOptions.fullscreenControl =
1539					$fullscr_control == 'yes' ? true : false;
1540				$mapOptions.mapTypeControl = $maptype_control == 'yes' ? true : false;
1541				if ($maptype_control == 'yes') {
1542					$mapOptions.mapTypeControlOptions = {
1543						style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
1544						position: google.maps.ControlPosition[$maptype_position],
1545						mapTypeIds: ['roadmap', 'satellite', 'hybrid', 'terrain'],
1546					};
1547				}
1548
1549				// style
1550				$mapOptions.styles =
1551					$dark_mode === 'yes' ? $darkModeStyles : $stylesArray;
1552				// map type
1553				if ($mtype != '') {
1554					$mapOptions.mapTypeId = $mtype;
1555				}
1556
1557				$mcenter['lat'] = parseFloat($center.lat);
1558				$mcenter['lng'] = parseFloat($center.lng);
1559
1560				let $modeEnable = ['view', 'streetview'];
1561				if ($modeEnable.includes($mode)) {
1562					$mapOptions.center = $mcenter;
1563				}
1564				$map = new google.maps.Map($mapEl, $mapOptions);
1565
1566				// init map marker center image
1567				let $cm_image = {
1568					url: $cm_marker, // url
1569					scaledSize: new google.maps.Size($cm_width, $cm_height), // scaled size
1570					origin: new google.maps.Point(0, 0), // origin
1571					anchor: new google.maps.Point(0, 0), // anchor
1572				};
1573
1574				// mode place
1575				if ($mode === 'place') {
1576					let geocoder = new google.maps.Geocoder();
1577					geocoder.geocode({
1578							address: $center_name
1579						},
1580						function (results, status) {
1581							if (status == 'OK') {
1582								var geo = JSON.parse(
1583									JSON.stringify(results[0].geometry.location)
1584								);
1585								$mcenter['lat'] = parseFloat(geo.lat);
1586								$mcenter['lng'] = parseFloat(geo.lng);
1587
1588								$map.setCenter(results[0].geometry.location);
1589								new google.maps.Marker({
1590									map: $map,
1591									position: $mcenter,
1592									title: $cm_title != '' ? $cm_title : '',
1593									label: $cm_label != '' ? $cm_label : '',
1594									icon: $cm_image,
1595								});
1596							} else {
1597								alert(
1598									'Geocode was not successful for the following reason: ' +
1599									status
1600								);
1601							}
1602						}
1603					);
1604				} else if ($mode === 'directions') {
1605					var $directionsRenderer = new google.maps.DirectionsRenderer(),
1606						$directionsService = new google.maps.DirectionsService();
1607					$directionsRenderer.setMap($map);
1608
1609					var $request = {
1610						origin: $direction_origin,
1611						destination: $direction_destination,
1612						travelMode: google.maps.TravelMode[$direction_travel_mode],
1613						waypoints: $direction_waypoints,
1614						optimizeWaypoints: $direction_optimiz_waypoints,
1615						avoidFerries: $direction_avoid_ferries,
1616						avoidHighways: $direction_avoid_highways,
1617						avoidTolls: $direction_avoid_tolls,
1618					};
1619					$directionsService.route($request, function (result, status) {
1620						if (status == 'OK') {
1621							$directionsRenderer.setDirections(result);
1622						}
1623					});
1624				} else if ($mode === 'streetview') {
1625					let $streetId = $mapEl;
1626					if ($streetview_with_map === 'yes') {
1627						$streetId = document.getElementById('map-pano-' + $ids);
1628					}
1629					var $panorama = new google.maps.StreetViewPanorama($streetId, {
1630						position: {
1631							lat: parseFloat($center.lat),
1632							lng: parseFloat($center.lng),
1633						},
1634						pov: {
1635							heading: 165,
1636							pitch: 0
1637						},
1638						motionTrackingControlOptions: {
1639							position: google.maps.ControlPosition.LEFT_BOTTOM,
1640						},
1641						linksControl: $streetview_link == 'yes' ? true : false,
1642						panControl: $streetview_pan == 'yes' ? true : false,
1643						enableCloseButton: true,
1644					});
1645					$map.setStreetView($panorama);
1646				}
1647				// set map marker
1648				var $markerObj = $mcenter;
1649				$markerObj.title = $cm_title != '' ? $cm_title : '';
1650				$markerObj.label = $cm_label != '' ? $cm_label : '';
1651				if ($cm_marker != '') {
1652					$markerObj.icon = $cm_image;
1653				}
1654				$markers_location.unshift($markerObj);
1655
1656				// map marker
1657				if ($markers_location.length > 0) {
1658					var markers = $markers_location.map((location, i) => {
1659						let $lonLat = {};
1660						$lonLat['lat'] = parseFloat(location.lat);
1661						$lonLat['lng'] = parseFloat(location.lng);
1662
1663						let $icon = location.icon ? location.icon : '';
1664						if (location.location_marker && location.location_marker != '') {
1665							$icon = {
1666								url: location.location_marker, // url
1667								scaledSize: new google.maps.Size(
1668									location.lm_height,
1669									location.lm_width
1670								), // scaled size
1671								origin: new google.maps.Point(0, 0), // origin
1672								anchor: new google.maps.Point(0, 0), // anchor
1673							};
1674						}
1675
1676						let $marOpt = {
1677							position: $lonLat,
1678							map: $map,
1679						};
1680						if (location.title && location.title != '') {
1681							$marOpt.title = location.title;
1682						}
1683						if (location.label && location.label != '') {
1684							$marOpt.label = location.label;
1685						}
1686						if ($icon != '') {
1687							$marOpt.icon = $icon;
1688						}
1689						return new google.maps.Marker($marOpt);
1690					});
1691
1692					new markerClusterer.MarkerClusterer({
1693						markers,
1694						$map
1695					});
1696				}
1697			}
1698		},
1699
1700		/**
1701		 * dl_pro_line_chart
1702		 * return line chart
1703		 */
1704		dl_pro_line_chart: function ($scope) {
1705			let $wrap = $scope.find('.droitpro-linechart');
1706			let $ids = $wrap.data('linechartid');
1707			let $settings = $wrap.data('settings');
1708
1709			if (!$settings) {
1710				return;
1711			}
1712
1713			let $labels = $settings.hasOwnProperty('labels') ?
1714				$settings.labels :
1715				['January', 'February', 'March', 'April', 'May', 'June'],
1716				$datasets = $settings.hasOwnProperty('datasets') ?
1717				$settings.datasets :
1718				[],
1719				$x_axes_grid_line = $settings.hasOwnProperty('x_axes_grid_line') ?
1720				$settings.x_axes_grid_line :
1721				true,
1722				$y_axes_grid_line = $settings.hasOwnProperty('y_axes_grid_line') ?
1723				$settings.y_axes_grid_line :
1724				true,
1725				$x_axes_labels = $settings.hasOwnProperty('x_axes_labels') ?
1726				$settings.x_axes_labels :
1727				true,
1728				$y_axes_labels = $settings.hasOwnProperty('y_axes_labels') ?
1729				$settings.y_axes_labels :
1730				true,
1731				$show_legend = $settings.hasOwnProperty('show_legend') ?
1732				$settings.show_legend :
1733				true,
1734				$usePointStyle = $settings.hasOwnProperty('legend_type') ?
1735				$settings.legend_type :
1736				true,
1737				$set_scale_axes = $settings.hasOwnProperty('set_scale_axes') ?
1738				$settings.set_scale_axes :
1739				10,
1740				$legend_title = $settings.hasOwnProperty('legend_title') ?
1741				$settings.legend_title :
1742				{},
1743				$legend = $settings.hasOwnProperty('legend') ? $settings.legend : {},
1744				$tooltip = $settings.hasOwnProperty('tooltip') ? $settings.tooltip : {},
1745				$animations = $settings.hasOwnProperty('animations') ?
1746				$settings.animations :
1747				{},
1748				$xaxes_ticks = $settings.hasOwnProperty('xaxes_ticks') ?
1749				$settings.xaxes_ticks :
1750				{},
1751				$yaxes_ticks = $settings.hasOwnProperty('yaxes_ticks') ?
1752				$settings.yaxes_ticks :
1753				{};
1754			console.log('chart legend ', $legend);
1755
1756			if ($ids) {
1757				let $ctx = document
1758					.getElementById('linechart-' + $ids)
1759					.getContext('2d');
1760				let LineChart = new Chart($ctx, {
1761					type: 'line',
1762					data: {
1763						labels: $labels,
1764						datasets: $datasets,
1765					},
1766					options: {
1767						tension: $settings.tension,
1768						stepped: $settings.stepped,
1769						maintainAspectRatio: false,
1770						scales: {
1771							y: {
1772								beginAtZero: true,
1773								// min:-100,
1774								max: parseInt($set_scale_axes),
1775								ticks: $yaxes_ticks,
1776								grid: {
1777									display: $y_axes_grid_line,
1778								},
1779								display: $y_axes_labels,
1780							},
1781							x: {
1782								ticks: $xaxes_ticks,
1783								grid: {
1784									display: $x_axes_grid_line,
1785								},
1786								display: $x_axes_labels,
1787							},
1788						},
1789						plugins: {
1790							tooltip: $tooltip,
1791							title: $legend_title,
1792							legend: $legend,
1793							axes: {
1794								display: $show_legend,
1795								labels: {
1796									usePointStyle: $usePointStyle,
1797								},
1798							},
1799						},
1800						animations: $animations,
1801					},
1802				});
1803			}
1804		}, // end dl line chart..
1805
1806		/**
1807		 * dl_pro_pie_chart
1808		 * return pie & doughnut chart base on chart type
1809		 */
1810		dl_pro_pie_chart: function ($scope) {
1811			let $wrap = $scope.find('.droitpro-piechart');
1812			let $ids = $wrap.data('piechartid');
1813			let $settings = $wrap.data('settings');
1814
1815			if (!$settings) {
1816				return;
1817			}
1818
1819			let $chart_type = $settings.hasOwnProperty('chart_type') ?
1820				$settings.chart_type :
1821				'pie',
1822				$datasets = $settings.hasOwnProperty('datasets') ?
1823				$settings.datasets :
1824				{},
1825				$show_legend = $settings.hasOwnProperty('show_legend') ?
1826				$settings.show_legend :
1827				true,
1828				$usePointStyle = $settings.hasOwnProperty('legend_type') ?
1829				$settings.legend_type :
1830				true,
1831				$legend_title = $settings.hasOwnProperty('legend_title') ?
1832				$settings.legend_title :
1833				{},
1834				$legend = $settings.hasOwnProperty('legend') ? $settings.legend : {},
1835				$tooltip = $settings.hasOwnProperty('tooltip') ? $settings.tooltip : {};
1836			if ($ids) {
1837				let $ctx = document.getElementById('piechart-' + $ids).getContext('2d');
1838				let PieChart = new Chart($ctx, {
1839					type: $chart_type,
1840					data: $datasets,
1841					options: {
1842						tension: $settings.tension,
1843						maintainAspectRatio: false,
1844						plugins: {
1845							tooltip: $tooltip,
1846							title: $legend_title,
1847							legend: $legend,
1848							axes: {
1849								display: $show_legend,
1850								labels: {
1851									usePointStyle: $usePointStyle,
1852								},
1853							},
1854						},
1855					},
1856				});
1857			}
1858		}, // end dl pie/doughnut chart..
1859
1860		/**
1861		 * dl_pro_radar_chart
1862		 * return radar chart
1863		 */
1864		dl_pro_radar_chart: function ($scope) {
1865			let $wrap = $scope.find('.droitpro-radarchart');
1866			let $ids = $wrap.data('radarchartid');
1867			let $settings = $wrap.data('settings');
1868
1869			if (!$settings) {
1870				return;
1871			}
1872
1873			let $labels = $settings.hasOwnProperty('labels') ? $settings.labels : [],
1874				$datasets = $settings.hasOwnProperty('datasets') ?
1875				$settings.datasets :
1876				[],
1877				$x_axes_grid_line = $settings.hasOwnProperty('x_axes_grid_line') ?
1878				$settings.x_axes_grid_line :
1879				true,
1880				$y_axes_grid_line = $settings.hasOwnProperty('y_axes_grid_line') ?
1881				$settings.y_axes_grid_line :
1882				true,
1883				$x_axes_labels = $settings.hasOwnProperty('x_axes_labels') ?
1884				$settings.x_axes_labels :
1885				true,
1886				$y_axes_labels = $settings.hasOwnProperty('y_axes_labels') ?
1887				$settings.y_axes_labels :
1888				true,
1889				$show_legend = $settings.hasOwnProperty('show_legend') ?
1890				$settings.show_legend :
1891				true,
1892				$usePointStyle = $settings.hasOwnProperty('legend_type') ?
1893				$settings.legend_type :
1894				true,
1895				$set_scale_axes = $settings.hasOwnProperty('set_scale_axes') ?
1896				$settings.set_scale_axes :
1897				10,
1898				$legend_title = $settings.hasOwnProperty('legend_title') ?
1899				$settings.legend_title :
1900				{},
1901				$legend = $settings.hasOwnProperty('legend') ? $settings.legend : {},
1902				$tooltip = $settings.hasOwnProperty('tooltip') ? $settings.tooltip : {},
1903				$animations = $settings.hasOwnProperty('animations') ?
1904				$settings.animations :
1905				{},
1906				$xaxes_ticks = $settings.hasOwnProperty('xaxes_ticks') ?
1907				$settings.xaxes_ticks :
1908				{},
1909				$yaxes_ticks = $settings.hasOwnProperty('yaxes_ticks') ?
1910				$settings.yaxes_ticks :
1911				{},
1912				$tension = $settings.hasOwnProperty('tension') ? $settings.tension : 0;
1913			// console.log('chart animations ', $animations);
1914
1915			if ($ids) {
1916				let $ctx = document
1917					.getElementById('radarchart-' + $ids)
1918					.getContext('2d');
1919				let RadarChart = new Chart($ctx, {
1920					type: 'radar',
1921					data: {
1922						labels: $labels,
1923						datasets: $datasets,
1924					},
1925					options: {
1926						stepped: $settings.stepped,
1927						maintainAspectRatio: false,
1928						scales: {
1929							y: {
1930								beginAtZero: true,
1931								// min:-100,
1932								max: parseInt($set_scale_axes),
1933								ticks: $yaxes_ticks,
1934								grid: {
1935									display: $y_axes_grid_line,
1936								},
1937								display: $y_axes_labels,
1938							},
1939							x: {
1940								ticks: $xaxes_ticks,
1941								grid: {
1942									display: $x_axes_grid_line,
1943								},
1944								display: $x_axes_labels,
1945							},
1946						},
1947						plugins: {
1948							tooltip: $tooltip,
1949							title: $legend_title,
1950							legend: $legend,
1951							axes: {
1952								display: $show_legend,
1953								labels: {
1954									usePointStyle: $usePointStyle,
1955								},
1956							},
1957						},
1958						animations: $animations,
1959						elements: {
1960							line: {
1961								tension: $tension,
1962							},
1963						},
1964					},
1965				});
1966			}
1967		}, // end dl radar chart..
1968
1969		/**
1970		 * dl_pro_polararea_chart
1971		 * return polar area chart
1972		 */
1973		dl_pro_polararea_chart: function ($scope) {
1974			let $wrap = $scope.find('.droitpro-polarareachart');
1975			let $ids = $wrap.data('polarareachartid');
1976			let $settings = $wrap.data('settings');
1977
1978			if (!$settings) {
1979				return;
1980			}
1981
1982			let $datasets = $settings.hasOwnProperty('datasets') ?
1983				$settings.datasets :
1984				{},
1985				$show_legend = $settings.hasOwnProperty('show_legend') ?
1986				$settings.show_legend :
1987				true,
1988				$usePointStyle = $settings.hasOwnProperty('legend_type') ?
1989				$settings.legend_type :
1990				true,
1991				$legend_title = $settings.hasOwnProperty('legend_title') ?
1992				$settings.legend_title :
1993				{},
1994				$legend = $settings.hasOwnProperty('legend') ? $settings.legend : {},
1995				$tooltip = $settings.hasOwnProperty('tooltip') ? $settings.tooltip : {},
1996				$borderWidth = $settings.hasOwnProperty('borderWidth') ?
1997				$settings.borderWidth :
1998				0,
1999				$borderColor = $settings.hasOwnProperty('borderColor') ?
2000				$settings.borderColor :
2001				'';
2002			if ($ids) {
2003				let $ctx = document
2004					.getElementById('polarareachart-' + $ids)
2005					.getContext('2d');
2006				let PolarChart = new Chart($ctx, {
2007					type: 'polarArea',
2008					data: $datasets,
2009					options: {
2010						tension: $settings.tension,
2011						maintainAspectRatio: false,
2012						plugins: {
2013							tooltip: $tooltip,
2014							title: $legend_title,
2015							legend: $legend,
2016							axes: {
2017								display: $show_legend,
2018								labels: {
2019									usePointStyle: $usePointStyle,
2020								},
2021							},
2022						},
2023						borderWidth: $borderWidth,
2024						borderColor: $borderColor,
2025					},
2026				});
2027			}
2028		}, // end dl polar_area chart..
2029
2030		dl_hotspot_pro: function ($scope) {
2031			var DL_hotspot = elementorModules.frontend.handlers.Base.extend({
2032				onInit: function () {
2033					elementorModules.frontend.handlers.Base.prototype.onInit.apply(
2034						this,
2035						arguments
2036					);
2037					this.init();
2038				},
2039				bindEvents: function () {
2040					if (!this.isEdit) {
2041						this.elements.$items.on('click.spotClick', function (e) {
2042							e.preventDefault();
2043						});
2044					}
2045				},
2046
2047				getDefaultSettings: function () {
2048					return {
2049						selectors: {
2050							item: '.dl-hotspots__item',
2051						},
2052					};
2053				},
2054
2055				getDefaultElements: function () {
2056					return {
2057						$items: this.findElement(this.getSettings('selectors.item')),
2058					};
2059				},
2060
2061				onElementChange: function (changedProp) {
2062					if (!this.hasTipso()) {
2063						return;
2064					}
2065
2066					if (changedProp.indexOf('tooltip_') === 0) {
2067						this.elements.$items.tipso('destroy');
2068						this.init();
2069					}
2070				},
2071
2072				hasTipso: function () {
2073					return $.fn['tipso'];
2074				},
2075				init: function () {
2076					var position = this.getElementSettings('dl_hotspot_tooltip_position'),
2077						width = this.getElementSettings('dl_hotspot_tooltip_width'),
2078						background = this.getElementSettings('dl_hotspot_tooltip_bg_color'),
2079						color = this.getElementSettings('dl_hotspot_tooltip_color'),
2080						speed = this.getElementSettings('dl_hotspot_tooltip_speed'),
2081						delay = this.getElementSettings('dl_hotspot_tooltip_delay'),
2082						hideDelay = this.getElementSettings(
2083							'dl_hotspot_tooltip_hide_delay'
2084						),
2085						hideArrow = this.getElementSettings(
2086							'dl_hotspot_tooltip_hide_arrow'
2087						),
2088						hover = this.getElementSettings('dl_hotspot_tooltip_hover'),
2089						elementId = this.getID();
2090
2091					if (!this.hasTipso()) {
2092						return;
2093					}
2094
2095					this.elements.$items.each(function (index, item) {
2096						var $item = $(item),
2097							target = $item.data('target'),
2098							settings = $item.data('settings'),
2099							classes = [
2100								'dl-hotspots--' + elementId,
2101								'elementor-repeater-item-' + target,
2102							];
2103						$item.tipso({
2104							color: color,
2105							width: width.size || 200,
2106							position: settings.position || position,
2107							speed: speed,
2108							delay: delay,
2109							showArrow: !hideArrow,
2110							tooltipHover: !!hover,
2111							hideDelay: hideDelay,
2112							background: background,
2113							useTitle: false,
2114							content: $('#dl-' + target).html(),
2115							onBeforeShow: function ($e, e, tooltip) {
2116								tooltip.tipso_bubble.addClass(classes.join(' '));
2117							},
2118						});
2119					});
2120				},
2121			});
2122
2123			// frontent system
2124			elementorFrontend.elementsHandler.addHandler(DL_hotspot, {
2125				$element: $scope,
2126			});
2127		},
2128		/**
2129		 * dl_pro_mini_cart
2130		 * @since
2131		 */
2132		dl_pro_mini_cart: function ($scope) {
2133			let $popup = $scope.find('.dl-mini-cart-popup');
2134			let $hover = $scope.find('.dl-mini-cart-on-hover');
2135			if ($hover.length > 0) {
2136				$($hover).hover(function () {
2137					$popup.fadeIn();
2138				});
2139			}
2140
2141			let $click = $scope.find('.dl-mini-cart-on-click');
2142			if ($click.length > 0) {
2143				$($click).click(function () {
2144					if ($($popup).is(':visible')) {
2145						$($popup).fadeOut();
2146					} else {
2147						$($popup).fadeIn();
2148					}
2149				});
2150			}
2151
2152			let $closePopup = $scope.find('.dl-minicart-close-popup');
2153			if ($closePopup.length > 0) {
2154				$($closePopup).click(function () {
2155					if ($($popup).is(':visible')) {
2156						$($popup).fadeOut();
2157					}
2158				});
2159			}
2160
2161			/** for control popup visiblity */
2162			$(document).mouseup(function (e) {
2163				let $container = $('.dl-mini-cart-inner');
2164				//if the target of the click isn't the container nor a descendant of the container
2165				if (!$container.is(e.target) && $container.has(e.target).length === 0) {
2166					$popup.click(function (e) {
2167						e.stopPropagation();
2168					});
2169
2170					//check is popup open
2171					if ($($popup).is(':visible')) {
2172						$popup.fadeOut();
2173					}
2174				}
2175			});
2176
2177			// for hove action
2178			if (!$click.length > 0) {
2179				$(document).mousemove(function (e) {
2180					let $container = $('.dl-mini-cart-inner');
2181					var $target = e.target;
2182					//if the target of the click isn't the container nor a descendant of the container
2183					if (
2184						!$container.is(e.target) &&
2185						$container.has(e.target).length === 0
2186					) {
2187						if ($($popup).is(':visible')) {
2188							$popup.fadeOut();
2189						}
2190					}
2191				});
2192			}
2193		},
2194
2195		// for woo checkout
2196		dl_pro_woo_checkout: function ($scope) {
2197			let $showcoupon = $scope.find('a.showcoupon');
2198			let $couponBody = $scope.find('.checkout_coupon');
2199
2200			$(document).ready(function (e) {
2201				var $ele = $('body').data('events', 'click');
2202				$ele.off('click');
2203			});
2204
2205			if ($showcoupon.length > 0) {
2206				$($showcoupon).click(function () {
2207					$($couponBody).slideToggle(400, function () {
2208						$($couponBody).find(':input:eq(0)').trigger('focus');
2209					});
2210				});
2211			}
2212		},
2213
2214		_dl_pro_banner_slider: function ($scope, $) {
2215			var $slider = $scope.find('.dl_banner_slider'),
2216				$item = $slider.find('.swiper-slide > *'),
2217				$thumbs = $scope.find('.gallery-thumbs'),
2218				$dat = $slider.data('settings'),
2219				$datTh = $thumbs.data('settings') ? $thumbs.data('settings') : {};
2220
2221			if ($datTh.hasOwnProperty('thumbsEnable')) {
2222				var $obj = {
2223					spaceBetween: $datTh.spaceBetween ? $datTh.spaceBetween : '',
2224					slidesPerView: $datTh.slidesPerView ? $datTh.slidesPerView : '',
2225				};
2226				if ($datTh.breakpoints && $datTh.breakpoints != '') {
2227					$obj.breakpoints = $datTh.breakpoints;
2228				}
2229				var $galleryThumbs = new Swiper($thumbs, $obj);
2230
2231				$dat.thumbs = {
2232					swiper: $galleryThumbs,
2233				};
2234			}
2235
2236			$dat.on = {
2237				slideChangeTransitionStart: function () {
2238					$item.each(function () {
2239						$(this).css({
2240							transition: '0.1s',
2241							opacity: '0',
2242						});
2243					});
2244				},
2245				slideChangeTransitionEnd: function () {
2246					var $animation = $item.find('[data-animation]');
2247					if ($animation.length > 0) {
2248						dlAddons_banner_slider($animation);
2249					}
2250					$item.each(function () {
2251						$(this).css({
2252							transition: '0.1s',
2253							opacity: '1',
2254						});
2255					});
2256				},
2257			};
2258			// render slider
2259			new Swiper($slider, $dat);
2260
2261			// auto slider
2262			if ($dat.dl_mouseover) {
2263				$slider.hover(
2264					function () {
2265						this.swiper.autoplay.stop();
2266					},
2267					function () {
2268						this.swiper.autoplay.start();
2269					}
2270				);
2271			}
2272
2273			if ($dat.dl_autoplay) {
2274				$slider.each(function () {
2275					this.swiper.autoplay.start();
2276				});
2277			} else {
2278				$slider.each(function () {
2279					this.swiper.autoplay.stop();
2280				});
2281			}
2282
2283			let $delay = $dat.speed;
2284			if ($dat.autoplay) {
2285				$delay = $dat.autoplay.delay;
2286			}
2287		},
2288	};
2289
2290	const swiperLoader = (swiperElement, swiperConfig) => {
2291		if ('undefined' === typeof Swiper || 'function' === typeof Swiper) {
2292			const asyncSwiper = elementorFrontend.utils.swiper;
2293			return new asyncSwiper(swiperElement, swiperConfig).then((newSwiperInstance) => {
2294				return newSwiperInstance;
2295			});
2296		} else {
2297			return new Swiper( swiperElement, swiperConfig );
2298		}
2299	}
2300
2301	// define count down rediraction
2302	function _dl_pro_count_down_redirect(url) {
2303		window.location.replace(url);
2304	}
2305
2306	function dlAddons_banner_slider(elements) {
2307		var animationEndEvents =
2308			'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';
2309		elements.each(function () {
2310			var $this = $(this);
2311			var $animationDelay = $this.data('delay');
2312			var $animationType = 'animated ' + $this.data('animation');
2313			$this.css({
2314				'animation-delay': $animationDelay,
2315				'-webkit-animation-delay': $animationDelay,
2316			});
2317			$this.addClass($animationType).one(animationEndEvents, function () {
2318				$this.removeClass($animationType);
2319			});
2320		});
2321	}
2322
2323	$window.on('elementor/frontend/init', droitElementsPro.onInit);
2324})(jQuery, window);

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.