PageSourceSearch

https://pqftl.com.pk/wp-content/plugins/ht-mega-for-elementor/assets/js/htmega-widgets-active.js?ver=3.2.5

js pqftl.com.pk collected 2026-09-24 13:37:14 UTC 50,025 bytes, 1,056 lines download raw bytes

1;(function($){
2"use strict";
3
4let areaBtnNext = HTMEGAF['buttion_area_text_next'];
5let areaBtnPrev = HTMEGAF['buttion_area_text_prev'];
6    var WidgetTestimonialCarouselHandler = function ($scope, $) {
7
8        var carousel_elem = $scope.find('.htmega-testimonial-activation').eq(0);
9        if( carousel_elem.length > 0){ carousel_elem[0].style.display='block'; }
10        if (carousel_elem.length > 0) {
11
12            var settings = carousel_elem.data('settings');
13            var arrows = settings['arrows'];
14            var arrow_prev_txt = settings['arrow_prev_txt'];
15            var arrow_next_txt = settings['arrow_next_txt'];
16            var testimonial_style_ck = parseInt(settings['testimonial_style_ck']) || 1;
17            var dots = settings['dots'];
18            var autoplay = settings['autoplay'];
19            var autoplay_speed = parseInt(settings['autoplay_speed']) || 3000;
20            var animation_speed = parseInt(settings['animation_speed']) || 300;
21            var pause_on_hover = settings['pause_on_hover'];
22            var center_mode = settings['center_mode'];
23            var center_padding = parseInt(settings['center_padding']) || 0;
24            var center_padding = center_padding.toString();
25            var display_columns = parseInt(settings['display_columns']) || 1;
26            var scroll_columns = parseInt(settings['scroll_columns']) || 1;
27            var tablet_width = parseInt(settings['tablet_width']) || 800;
28            var tablet_display_columns = parseInt(settings['tablet_display_columns']) || 1;
29            var tablet_scroll_columns = parseInt(settings['tablet_scroll_columns']) || 1;
30            var mobile_width = parseInt(settings['mobile_width']) || 480;
31            var mobile_display_columns = parseInt(settings['mobile_display_columns']) || 1;
32            var mobile_scroll_columns = parseInt(settings['mobile_scroll_columns']) || 1;
33
34            if( testimonial_style_ck == 5 || testimonial_style_ck == 11){
35
36                var carousel_elem_for = $scope.find('.htmega-testimonial-activation .htmega-testimonial-for').eq(0);
37                if( carousel_elem_for.length > 0 ){ carousel_elem_for[0].style.display='block'; }
38                var carousel_elem_nav = $scope.find('.htmega-testimonial-activation .htmega-testimonal-nav').eq(0);
39                if( carousel_elem_nav.length > 0 ){ carousel_elem_nav[0].style.display='block'; }
40
41                carousel_elem_for.not('.slick-initialized').slick({
42                    slidesToShow: 1,
43                    slidesToScroll: scroll_columns,
44                    arrows: arrows,
45                    prevArrow: '<button aria-label="'+areaBtnPrev+'" type="button" class="slick-prev">'+arrow_prev_txt+'</button>',
46                    nextArrow: '<button aria-label="'+areaBtnNext+'" type="button" class="slick-next">'+arrow_next_txt+'</button>',
47                    dots: dots,
48                    fade: true,
49                    asNavFor: '.htmega-testimonal-nav'
50                });
51
52                carousel_elem_nav.not('.slick-initialized').slick({
53                    slidesToShow: display_columns,
54                    slidesToScroll: scroll_columns,
55                    asNavFor: '.htmega-testimonial-for',
56                    dots: false,
57                    arrows: false,
58                    centerMode: center_mode,
59                    focusOnSelect: true,
60                    centerPadding: center_padding+'px',
61                });
62
63            }else{
64                carousel_elem.not('.slick-initialized').slick({
65                    arrows: arrows,
66                    prevArrow: '<button aria-label="'+areaBtnPrev+'" type="button" class="slick-prev">'+arrow_prev_txt+'</button>',
67                    nextArrow: '<button aria-label="'+areaBtnNext+'" type="button" class="slick-next">'+arrow_next_txt+'</button>',
68                    dots: dots,
69                    infinite: true,
70                    autoplay: autoplay,
71                    autoplaySpeed: autoplay_speed,
72                    speed: animation_speed,
73                    fade: false,
74                    pauseOnHover: pause_on_hover,
75                    slidesToShow: display_columns,
76                    slidesToScroll: scroll_columns,
77                    centerMode: center_mode,
78                    centerPadding: center_padding+'px',
79                    responsive: [
80                        {
81                            breakpoint: tablet_width,
82                            settings: {
83                                slidesToShow: tablet_display_columns,
84                                slidesToScroll: tablet_scroll_columns
85                            }
86                        },
87                        {
88                            breakpoint: mobile_width,
89                            settings: {
90                                slidesToShow: mobile_display_columns,
91                                slidesToScroll: mobile_scroll_columns
92                            }
93                        }
94                    ]
95                });
96            }
97        }
98    }
99
100    // Carousel Handler
101    var WidgetHtmegaCarouselHandler = function ($scope, $) {
102
103        var carousel_elem = $scope.find( '.htmega-carousel-activation' ).eq(0);
104        if (carousel_elem.length > 0 && carousel_elem[0]) { 
105            
106            carousel_elem[0].style.display='block';
107        
108        }
109        if ( carousel_elem.length > 0 ) {
110
111            var settings = carousel_elem.data('settings');
112            var sectionid = settings['sectionid'];
113            var arrows = settings['arrows'];
114            var arrow_prev_txt = settings['arrow_prev_txt'];
115            var arrow_next_txt = settings['arrow_next_txt'];
116            var dots = settings['dots'];
117            var autoplay = settings['autoplay'];
118            var autoplay_speed = parseInt(settings['autoplay_speed']) || 3000;
119            var animation_speed = parseInt(settings['animation_speed']) || 300;
120            var pause_on_hover = settings['pause_on_hover'];
121            var center_mode = settings['center_mode'];
122            var verticalMode = ( settings['vertical_mode'] ) ? settings['vertical_mode'] : false;
123            var slloop = settings['slloop'];
124            var center_padding = settings['center_padding'] ? parseInt( settings['center_padding'] ): 0;
125            var variable_width = settings['variable_width'] ? true : false;
126            var display_columns = parseInt(settings['display_columns']) || 1;
127            var scroll_columns = parseInt(settings['scroll_columns']) || 1;
128            var tablet_width = parseInt(settings['tablet_width']) || 800;
129            var tablet_display_columns = parseInt(settings['tablet_display_columns']) || 1;
130            var tablet_scroll_columns = parseInt(settings['tablet_scroll_columns']) || 1;
131            var mobile_width = parseInt(settings['mobile_width']) || 480;
132            var mobile_display_columns = parseInt(settings['mobile_display_columns']) || 1;
133            var mobile_scroll_columns = parseInt(settings['mobile_scroll_columns']) || 1;
134            var carousel_style_ck = parseInt( settings['carousel_style_ck'] ) || 1;
135            if( carousel_style_ck == 4 ){
136                carousel_elem.not('.slick-initialized').slick({
137                    arrows: arrows,
138                    prevArrow: '<button class="htmega-carosul-prev">'+arrow_prev_txt+'</button>',
139                    nextArrow: '<button class="htmega-carosul-next">'+arrow_next_txt+'</button>',
140                    dots: dots,
141                    customPaging: function( slick,index ) {
142                        var data_title = slick.$slides.eq(index).find('.htmega-data-title').data('title');
143                        var data_thumbnail = slick.$slides.eq(index).find('.htmega-data-title').data('thumbnail');
144                        
145                        if(data_thumbnail ){
146                            return '<img src="'+data_thumbnail+'" alt="'+data_title+'">';
147                        } else {
148                            return '<h6>'+data_title+'</h6>';
149                        }
150                    },
151                    infinite: true,
152                    autoplay: autoplay,
153                    autoplaySpeed: autoplay_speed,
154                    speed: animation_speed,
155                    fade: false,
156                    pauseOnHover: pause_on_hover,
157                    slidesToShow: display_columns,
158                    slidesToScroll: scroll_columns,
159                    centerMode: center_mode,
160                    centerPadding: center_padding+'px',
161                    vertical: verticalMode,
162                    rtl: elementorFrontendConfig.is_rtl,
163                    responsive: [
164                        {
165                            breakpoint: tablet_width,
166                            settings: {
167                                slidesToShow: tablet_display_columns,
168                                slidesToScroll: tablet_scroll_columns
169                            }
170                        },
171                        {
172                            breakpoint: mobile_width,
173                            settings: {
174                                slidesToShow: mobile_display_columns,
175                                slidesToScroll: mobile_scroll_columns
176                            }
177                        }
178                    ]
179                });
180            }else{
181                carousel_elem.not('.slick-initialized').slick({
182                    arrows: arrows,
183                    prevArrow: '<button aria-label="'+areaBtnPrev+'" class="htmega-carosul-prev">'+arrow_prev_txt+'</button>',
184                    nextArrow: '<button aria-label="'+areaBtnNext+'" class="htmega-carosul-next">'+arrow_next_txt+'</button>',
185                    dots: dots,
186                    infinite: true,
187                    autoplay: autoplay,
188                    autoplaySpeed: autoplay_speed,
189                    speed: animation_speed,
190                    infinite:slloop,
191                    fade: false,
192                    pauseOnHover: pause_on_hover,
193                    slidesToShow: display_columns,
194                    slidesToScroll: scroll_columns,
195                    centerMode: center_mode,
196                    centerPadding: center_padding+'px',
197                    variableWidth: variable_width,
198                    vertical: verticalMode,
199                    rtl: elementorFrontendConfig.is_rtl,
200                    responsive: [
201                        {
202                            breakpoint: tablet_width,
203                            settings: {
204                                slidesToShow: tablet_display_columns,
205                                slidesToScroll: tablet_scroll_columns
206                            }
207                        },
208                        {
209                            breakpoint: mobile_width,
210                            settings: {
211                                slidesToShow: mobile_display_columns,
212                                slidesToScroll: mobile_scroll_columns
213                            }
214                        }
215                    ]
216                    
217                });
218            }
219
220            //equal height column
221            if( settings['equal_height_column'] && settings['sectionid'] && settings['equal_height_column_class']){
222                var maxHeight = -1;
223                $('.'+settings['sectionid']+' '+settings['equal_height_column_class']).each(function() {
224                    if ( $('.'+settings['sectionid']+' '+settings['equal_height_column_class'] ).outerHeight() > maxHeight ) {
225                        maxHeight = $('.'+settings['sectionid']+' '+settings['equal_height_column_class']).outerHeight();
226                    }
227                });
228                $('.'+settings['sectionid']+' '+settings['equal_height_column_class'] ).each(function() {
229                    if ($(this).outerHeight() < maxHeight) {
230                        $(this).css('height', maxHeight+ 'px');
231                    }
232                });
233            }
234
235        }
236    }
237
238
239    // Carousel Handler
240    var WidgetHtmegaThumbnailsgalleryHandler = function ($scope, $) {
241
242        var thumbnailscarousel_elem_for = $scope.find('.htmega-thumbgallery-for').eq(0);
243        var thumbnailscarousel_elem_nav = $scope.find('.htmega-thumbgallery-nav').eq(0);
244            thumbnailscarousel_elem_for[0].style.display='block';
245            thumbnailscarousel_elem_nav[0].style.display='block';
246        if ( thumbnailscarousel_elem_for.length > 0 ) {
247
248            var settings = thumbnailscarousel_elem_for.data('settings');
249            var arrows = settings['arrows'];
250            var arrow_prev_txt = settings['arrow_prev_txt'];
251            var arrow_next_txt = settings['arrow_next_txt'];
252            var dots = settings['dots'];
253            var autoplay = settings['autoplay'];
254            var autoplay_speed = parseInt(settings['autoplay_speed']) || 3000;
255            var animation_speed = parseInt(settings['animation_speed']) || 300;
256            var pause_on_hover = settings['pause_on_hover'];
257            var center_mode = settings['center_mode'];
258            var center_padding = parseInt(settings['center_padding']) || 0;
259            var center_padding = center_padding.toString();
260            var display_columns = parseInt(settings['display_columns']) || 1;
261            var scroll_columns = parseInt(settings['scroll_columns']) || 1;
262            var tablet_width = parseInt(settings['tablet_width']) || 800;
263            var tablet_display_columns = parseInt(settings['tablet_display_columns']) || 1;
264            var tablet_scroll_columns = parseInt(settings['tablet_scroll_columns']) || 1;
265            var mobile_width = parseInt(settings['mobile_width']) || 480;
266            var mobile_display_columns = parseInt(settings['mobile_display_columns']) || 1;
267            var mobile_scroll_columns = parseInt(settings['mobile_scroll_columns']) || 1;
268
269            // Slider Thumbnails
270            var navsettings = thumbnailscarousel_elem_nav.data('navsettings');
271            var navarrows = navsettings['navarrows'];
272            var navarrow_prev_txt = navsettings['navarrow_prev_txt'];
273            var navarrow_next_txt = navsettings['navarrow_next_txt'];
274            var navdots = navsettings['navdots'];
275            var navvertical = navsettings['navvertical'];
276            var navautoplay = navsettings['navautoplay'];
277            var navautoplay_speed = parseInt(navsettings['navautoplay_speed']) || 3000;
278            var navanimation_speed = parseInt(navsettings['navanimation_speed']) || 300;
279            var navpause_on_hover = navsettings['navpause_on_hover'];
280            var navcenter_mode = navsettings['navcenter_mode'];
281            var navcenter_padding = parseInt(navsettings['navcenter_padding']) || 0;
282            var navcenter_padding = navcenter_padding.toString();
283            var navdisplay_columns = parseInt(navsettings['navdisplay_columns']) || 1;
284            var navscroll_columns = parseInt(navsettings['navscroll_columns']) || 1;
285            var navtablet_width = parseInt(navsettings['navtablet_width']) || 800;
286            var navtablet_display_columns = parseInt(navsettings['navtablet_display_columns']) || 1;
287            var navtablet_scroll_columns = parseInt(navsettings['navtablet_scroll_columns']) || 1;
288            var navmobile_width = parseInt(navsettings['navmobile_width']) || 480;
289            var navmobile_display_columns = parseInt(navsettings['navmobile_display_columns']) || 1;
290            var navmobile_scroll_columns = parseInt(navsettings['navmobile_scroll_columns']) || 1;
291
292            thumbnailscarousel_elem_for.not('.slick-initialized').slick({
293                arrows: arrows,
294                prevArrow: '<button aria-label="'+areaBtnPrev+'" class="htmega-carosul-prev">'+arrow_prev_txt+'</button>',
295                nextArrow: '<button aria-label="'+areaBtnNext+'" class="htmega-carosul-next">'+arrow_next_txt+'</button>',
296                asNavFor:thumbnailscarousel_elem_nav,
297                dots: dots,
298                infinite: true,
299                autoplay: autoplay,
300                autoplaySpeed: autoplay_speed,
301                speed: animation_speed,
302                fade: false,
303                pauseOnHover: pause_on_hover,
304                slidesToShow: display_columns,
305                slidesToScroll: scroll_columns,
306                centerMode: center_mode,
307                centerPadding: center_padding+'px',
308                rtl: elementorFrontendConfig.is_rtl,
309                responsive: [
310                    {
311                        breakpoint: tablet_width,
312                        settings: {
313                            slidesToShow: tablet_display_columns,
314                            slidesToScroll: tablet_scroll_columns
315                        }
316                    },
317                    {
318                        breakpoint: mobile_width,
319                        settings: {
320                            slidesToShow: mobile_display_columns,
321                            slidesToScroll: mobile_scroll_columns
322                        }
323                    }
324                ]
325            });
326
327            thumbnailscarousel_elem_nav.not('.slick-initialized').slick({
328                slidesToShow: navdisplay_columns,
329                slidesToScroll: navscroll_columns,
330                asNavFor: thumbnailscarousel_elem_for,
331                dots: navdots,
332                autoplay: navautoplay,
333                autoplaySpeed: navautoplay_speed,
334                centerMode: navcenter_mode,
335                centerPadding: navcenter_padding+'px',
336                rtl: elementorFrontendConfig.is_rtl,
337                responsive: [
338                    {
339                        breakpoint: navtablet_width,
340                        settings: {
341                            slidesToShow: navtablet_display_columns,
342                            slidesToScroll: navtablet_scroll_columns
343                        }
344                    },
345                    {
346                        breakpoint: navmobile_width,
347                        settings: {
348                            slidesToShow: navmobile_display_columns,
349                            slidesToScroll: navmobile_scroll_columns
350                        }
351                    }
352                ],
353                infinite: true,
354                focusOnSelect: true,
355                vertical: navvertical,
356                arrows: navarrows,
357                prevArrow: '<button aria-label="'+areaBtnPrev+'" class="htmega-carosul-prev">'+navarrow_prev_txt+'</button>',
358                nextArrow: '<button aria-label="'+areaBtnNext+'" class="htmega-carosul-next">'+navarrow_next_txt+'</button>',
359                draggable: true,
360                verticalSwiping: true,
361            });
362
363
364
365
366
367        }
368
369    }
370    
371
372    // Google Map
373    var WidgetGoogleMapHandler = function ($scope, $) {
374        var googlemap_elem = $scope.find('.htmega-google-map').eq(0);
375        if ( googlemap_elem.length > 0 ) {
376            var mapsettings = googlemap_elem.data('mapmarkers');
377            var mapsoptions = googlemap_elem.data('mapoptions');
378            var mapstyles   = googlemap_elem.data('mapstyle');
379
380            // Sanitize marker content
381            if (mapsettings && Array.isArray(mapsettings)) {
382                mapsettings = mapsettings.map(function(marker) {
383                    marker.baloon_text = DOMPurify.sanitize(marker.baloon_text);
384                    return marker;
385                });
386            }
387
388            var myMarkers = {
389                "markers": mapsettings,
390            };
391            googlemap_elem.mapmarker({
392                zoom    : mapsoptions.zoom,
393                center  : mapsoptions.center,
394                styles  : mapstyles,
395                markers : myMarkers,
396            });
397        }
398    }
399
400    // Accordion One
401    var WidgetAccordionsMapHandler = function ($scope, $) {
402
403        var accordion_elem = $scope.find('#accordion-4').eq(0);
404        var accordiontwo_elem = $scope.find('#va-accordion').eq(0);
405
406        if ( accordion_elem.length > 0 ) {
407            $('#accordion-4 > li').hover(
408                function () {
409                    var $this = $(this);
410                    $this.stop().animate({
411                        'width': '430px'
412                    }, 500);
413                    $('.heading', $this).stop(true, true).fadeOut();
414                    $('.bgDescription', $this).stop(true, true).slideDown(500);
415                    $('.description', $this).stop(true, true).fadeIn();
416                },
417                function () {
418                    var $this = $(this);
419                    $this.stop().animate({
420                        'width': '130px'
421                    }, 1000);
422                    $('.heading', $this).stop(true, true).fadeIn();
423                    $('.description', $this).stop(true, true).fadeOut(500);
424                    $('.bgDescription', $this).stop(true, true).slideUp(700);
425                }
426            );
427        }
428
429        if ( accordiontwo_elem.length > 0 ) {
430            var accordionsettings = accordiontwo_elem.data('accordionoptions');
431            accordiontwo_elem.vaccordion({
432                accordionH: accordionsettings.accordionheight,
433                expandedHeight: accordionsettings.expandedheight,
434                visibleSlices: accordionsettings.visibleitem,
435                animSpeed: 500,
436                animEasing: 'easeInOutBack',
437                animOpacity: 1,
438            });
439        }
440    }
441
442
443    // EasyPieChart
444    var WidgetPieChartMapHandler = function ($scope, $) {
445
446        var piechart_elem = $scope.find('.radial-progress').eq(0);
447
448        if ( piechart_elem.length > 0 ) {
449
450            $('.radial-progress').waypoint(function(){
451                $('.radial-progress').easyPieChart({
452                    lineWidth: 10,
453                    trackColor: false,
454                    scaleLength: 0,
455                    rotate: 0,
456                    barColor: '#1cb9da',
457                    trackColor: '#dcd9d9',
458                    lineCap: 'rott',
459                    size: 130
460                });
461
462            }, {
463                triggerOnce: true,
464                offset: 'bottom-in-view'
465            });
466
467        }
468
469    }
470
471    // Countdown
472    function countDownFlip($this, $time, $countdownoptions) {
473        var labels = ['Days', 'Hours', 'Mins', 'Secs'],
474            template = function(label, curr, next) {
475                if(($countdownoptions['htmegaday'] == 'yes') && (label.toLowerCase() == 'days')){
476                    return (
477                        `<div class="htmega-time htmega-days">
478                            <div class="htmega-time-inner">
479                                <span class="ht-count htmega-curr htmega-top">${curr}</span>
480                                <span class="ht-count htmega-next htmega-top">${next}</span>
481                                <span class="ht-count htmega-next htmega-bottom">${next}</span>
482                                <span class="ht-count htmega-curr htmega-bottom">${curr}</span>
483                            </div>
484                            <span class="htmega-label">${($countdownoptions['lavelhide'] == 'yes') ? '' : $('<p>').text($countdownoptions['htmegadaytxt']).prop('outerHTML')}</span>
485                        </div>`
486                    )
487                }else if(($countdownoptions['htmegahours'] == 'yes') && (label.toLowerCase() == 'hours')){
488                    return (
489                        `<div class="htmega-time htmega-hours">
490                            <div class="htmega-time-inner">
491                                <span class="ht-count htmega-curr htmega-top">${curr}</span>
492                                <span class="ht-count htmega-next htmega-top">${next}</span>
493                                <span class="ht-count htmega-next htmega-bottom">${next}</span>
494                                <span class="ht-count htmega-curr htmega-bottom">${curr}</span>
495                            </div>
496                            <span class="htmega-label">${($countdownoptions['lavelhide'] == 'yes') ? '' : $('<p>').text($countdownoptions['htmegahourtxt']).prop('outerHTML')}</span>
497                        </div>`
498                    )
499                }else if(($countdownoptions['htmegaminiute'] == 'yes') && (label.toLowerCase() == 'mins')){
500                    return (
501                        `<div class="htmega-time htmega-mins">
502                            <div class="htmega-time-inner">
503                                <span class="ht-count htmega-curr htmega-top">${curr}</span>
504                                <span class="ht-count htmega-next htmega-top">${next}</span>
505                                <span class="ht-count htmega-next htmega-bottom">${next}</span>
506                                <span class="ht-count htmega-curr htmega-bottom">${curr}</span>
507                            </div>
508                            <span class="htmega-label">${($countdownoptions['lavelhide'] == 'yes') ? '' : $('<p>').text($countdownoptions['htmegaminutestxt']).prop('outerHTML')}</span>
509                        </div>`
510                    )
511                }else if(($countdownoptions['htmegasecond'] == 'yes') && (label.toLowerCase() == 'secs')){
512                    return (
513                        `<div class="htmega-time htmega-secs">
514                            <div class="htmega-time-inner">
515                                <span class="ht-count htmega-curr htmega-top">${curr}</span>
516                                <span class="ht-count htmega-next htmega-top">${next}</span>
517                                <span class="ht-count htmega-next htmega-bottom">${next}</span>
518                                <span class="ht-count htmega-curr htmega-bottom">${curr}</span>
519                            </div>
520                            <span class="htmega-label">${($countdownoptions['lavelhide'] == 'yes') ? '' : $('<p>').text($countdownoptions['htmegasecondstxt']).prop('outerHTML')}</span>
521                        </div>`
522                    )
523                }
524            },
525            currDate = '00:00:00:00',
526            nextDate = '00:00:00:00',
527            parser = /([0-9]{2})/gi;
528        // Parse countdown string to an object
529        function strfobj(str) {
530            var parsed = str.match(parser),
531            obj = {};
532            labels.forEach(function(label, i) {
533                obj[label] = parsed[i]
534            });
535            return obj;
536        }
537        // Return the time components that diffs
538        function diff(obj1, obj2) {
539            var diff = [];
540            labels.forEach(function(key) {
541                if (obj1[key] !== obj2[key]) {
542                    diff.push(key);
543                }
544            });
545            return diff;
546        }
547        // Build the layout
548        var initData = strfobj(currDate);
549        labels.forEach(function(label, i) {
550            $this.append(template(label, initData[label], initData[label]));
551        });
552        // Starts the countdown
553        $this.countdown($time, function(event) {
554            var newDate = event.strftime('%D:%H:%M:%S'),
555            data;
556            if (newDate !== nextDate) {
557                currDate = nextDate;
558                nextDate = newDate;
559                // Setup the data
560                data = {
561                    'curr': strfobj(currDate),
562                    'next': strfobj(nextDate)
563                };
564                // Apply the new values to each node that changed
565                diff(data.curr, data.next).forEach(function(label) {
566                    var selector = '.%s'.replace(/%s/, `htmega-${label.toLowerCase()}`),
567                        $node = $this.find(selector);
568                    // Update the node
569                    $node.removeClass('htmega-flip');
570                    $node.find('.htmega-curr').text(data.curr[label]);
571                    $node.find('.htmega-next').text(data.next[label]);
572                    // Wait for a repaint to then flip
573                    setTimeout(function() {
574                        $node.addClass('htmega-flip');
575                    })
576                });
577            }
578        });
579    }
580
581    var WidgetCountdownMapHandler = function ($scope, $) {
582
583        var countdown_elem = $scope.find('[data-countdown]').eq(0);
584
585        if ( countdown_elem.length > 0 ) {
586            countdown_elem.each(function () {
587                var $this = $(this);
588                var countdownoptions = $this.data('countdown');
589                if( countdownoptions['style'] === 'flip' ){
590                    countDownFlip($this, countdownoptions.htmegadate, countdownoptions);
591                   
592                }else{
593                    $this.countdown(countdownoptions.htmegadate, function (event) {
594                        var finalTime, daysTime, hours, minutes, second;
595
596                        if( countdownoptions.lavelhide == 'yes' ){
597                            daysTime = '<span class="ht-count days"><span class="count-inner"><span class="time-count">%-D</span> </span></span>';
598                            hours = '<span class="ht-count hour"><span class="count-inner"><span class="time-count">%-H</span> </span></span>';
599                            minutes = '<span class="ht-count minutes"><span class="count-inner"><span class="time-count">%M</span> </span></span>';
600                            second = '<span class="ht-count second"><span class="count-inner"><span class="time-count">%S</span> </span></span>';
601                        }else{
602                            daysTime = '<span class="ht-count days"><span class="count-inner"><span class="time-count">%-D</span>' + $('<p>').text(countdownoptions.htmegadaytxt).prop('outerHTML') + '</span></span>';
603                            hours = '<span class="ht-count hour"><span class="count-inner"><span class="time-count">%-H</span>' +
604                            $('<p>').text(countdownoptions.htmegahourtxt).prop('outerHTML') + '</span></span>';
605                            minutes = '<span class="ht-count minutes"><span class="count-inner"><span class="time-count">%M</span>' + $('<p>').text(countdownoptions.htmegaminutestxt).prop('outerHTML') + '</span></span>';
606                            second = '<span class="ht-count second"><span class="count-inner"><span class="time-count">%S</span>' + $('<p>').text(countdownoptions.htmegasecondstxt).prop('outerHTML') + '</span></span>';
607                        }
608                        
609                        // Total default target time
610                        finalTime = daysTime + hours + minutes + second;
611
612                        if ( countdownoptions.htmegaday != 'yes' ){
613                            finalTime = hours + minutes + second;
614                        }
615                        if ( countdownoptions.htmegahours != 'yes' ){
616                            finalTime = daysTime + minutes + second;
617                        }
618                        if ( countdownoptions.htmegaminiute != 'yes' ){
619                            finalTime = daysTime + hours + second;
620                        }
621                        if ( countdownoptions.htmegasecond != 'yes' ){
622                            finalTime = daysTime + hours + minutes;
623                        }
624
625                        //Active Countdown
626                        $this.html(event.strftime( finalTime ));
627
628                    })
629                }
630            });
631        }
632    }
633
634    /*============= Team  Plus ==============*/
635    var WidgetTeamMemberPlusHandler = function ($scope, $) {
636        var teamPlus_elem = $scope.find('.plus_click').eq(0);
637        if ( teamPlus_elem.length > 0 ) {
638            teamPlus_elem.on('click', function (e) {
639                e.preventDefault();
640                $( this ).parent('.htmega-team-click-action').toggleClass('visible');
641
642                $( this ).toggleClass('team-minus');
643            });
644        }
645    }
646
647
648    /*============= News Ticker ==============*/
649    var WidgetNewsTrickerHandler = function ($scope, $) {
650        var newstricker_elem = $scope.find('.htmega-newstricker').eq(0);
651        newstricker_elem[0].parentNode.style.display='flex';
652        
653        if ( newstricker_elem.length > 0 ) {
654            var newstickeropt = newstricker_elem.data('newstrickeropt');
655            newstricker_elem.newsTicker({
656                row_height: newstickeropt.rowheight,
657                max_rows: newstickeropt.maxrows,
658                speed: newstickeropt.speed,
659                duration: newstickeropt.duration,
660                autostart: newstickeropt.autostart,
661                direction: newstickeropt.direction,
662                pauseOnHover: newstickeropt.pauseonhover,
663                prevButton: $('.news-ticker-prev'),
664                nextButton: $('.news-ticker-next'),
665            });
666        }
667    }
668
669    /*============= LightBox ==============*/
670    var WidgetLightboxHandler = function ($scope, $) {
671
672        var lightbox_elem = $scope.find('.image-popup-vertical-fit').eq(0);
673
674        if( lightbox_elem.length > 0 ){
675            var popupoption = lightbox_elem.data('popupoption');
676            lightbox_elem.magnificPopup({
677                type: popupoption.datatype,
678                closeOnContentClick: true,
679                mainClass: 'mfp-img-mobile',
680                image: {
681                    verticalFit: true,
682                    titleSrc:"This is title",
683                },
684            });
685        }
686
687    }
688
689    /*============= Video Player ==============*/
690     var WidgetVideoPlayerHandler = function ($scope, $) {
691        var videocontainer_elem = $scope.find('.htmega-player-container').eq(0);
692        var videotype = videocontainer_elem.data('videotype');
693
694        if( videotype.videocontainer == 'self' ){
695            var videoplayer_elem = $scope.find('.htmega-video-player').eq(0);
696            videoplayer_elem.YTPlayer();
697        }else{
698            var videopopup_elem = $scope.find('.magnify-video-active').eq(0);
699            videopopup_elem.magnificPopup({
700                type: 'iframe'
701            });
702        }
703    }
704
705    /*=============Tooltip ==============*/
706    var WidgetTooltipHandler = function ($scope, $) {
707
708        $('[data-toggle="tooltip"]').htbtooltip({
709            animation: false,
710        });
711    }
712
713    /*=============Popovers ==============*/
714    var WidgetPopoversHandler = function ($scope, $) {
715        $('[data-toggle="popover"]').htbpopover();
716        $('[data-toggle="popover"].show').htbpopover('show');
717
718        $('body').on('click', function (e) {
719            if ( $(e.target).data('toggle') !== 'popover' && $(e.target).parents('.popover.in').length === 0 ) {
720                $('[data-toggle="popover"]').htbpopover('hide');
721            }
722        });
723    }
724
725    /*=================== Notification Bar with container =================*/
726     var WidgetNotifyHandler = function ($scope, $) {
727
728        var notify_elem = $scope.find('.htmega_notify_area').eq(0);
729        var notify_opt = notify_elem.data('notifyopt');
730        
731        if( notify_elem.length > 0 ){
732
733            $(notify_opt.notify_btn_class).on("click", function () {
734                $.notify({}, {
735                    type: notify_opt.type,
736                    element: notify_opt.notify_class,
737                    delay: notify_opt.delay,
738                    timer: 1000,
739                    newest_on_top: true,
740                    mouse_over: null,
741
742                    animate: {
743                        enter: 'animated '+notify_opt.enter,
744                        exit: 'animated '+notify_opt.exit
745                    },
746
747                    placement: {
748                        from: notify_opt.from,
749                        align: notify_opt.align
750                    },
751
752                    offset: notify_opt.offset,
753                    spacing: 10,
754                    z_index: 99999,
755                    template: '<div class="htmega-alert-wrap-'+notify_opt.wrapid+' '+notify_opt.width+' alert alert-{0}">' +
756                    '<span data-notify="dismiss" class="htmega-close"><i class="fas fa-times"></i></span>' +notify_opt.icon+'<span class="notify-message-content">' + DOMPurify.sanitize(notify_opt.notifymessage) +
757                    '</span></div>'
758
759                });
760
761            });
762        }
763    }
764    /*========= Counter Up ============*/
765    var WidgetCounterHandler = function ($scope, $) {
766        var count_elem = $scope.find('.htmega-counter-number').eq(0);
767        var waypoint = new Waypoint({
768            element: count_elem[0],
769            handler: function(direction) {
770                if (direction === 'down') {
771                    $(count_elem).numerator( {
772                        easing:'swing',
773                        duration: 2000,
774                        //delimiter:',',
775                        //rounding: 2,// decimal places.
776                        toValue: parseFloat(count_elem[0].dataset['toValue'])
777                        } );
778                }
779                // Destroy the waypoint to ensure it only triggers once
780                this.destroy();
781            },
782            offset: '90%' 
783        });
784
785        // $(count_elem).counterUp({
786        //     delay: 10,
787        //     time: 1000,
788        // });
789    }
790
791    /*========= Masonry ============*/
792    var WidgetImageMasonaryHandler = function ($scope, $) {
793        var masonry_elem = $scope.find('.htmega-masonry-activation').eq(0);
794
795        if( masonry_elem.length > 0){
796
797            masonry_elem.imagesLoaded(function () {
798                masonry_elem[0].style.display='block'; 
799                // init Isotope
800                $('.masonry-wrap').isotope({
801                    itemSelector: '.masonary-item',
802                    percentPosition: true,
803                    transitionDuration: '0.7s',
804                    masonry: {
805                        columnWidth: '.masonary-sizer',
806                    }
807                });
808
809            });
810        }
811    }
812  
813
814    /*======= Scroll Navigation Activation ========*/
815    var WidgetNavigationScrollHandler = function ($scope, $) {
816        
817        var swiper_elem = $scope.find('.swiper-container').eq(0);
818        var swiper_opt = swiper_elem.data('settings');
819
820        var tablet_width = parseInt( swiper_opt.tablet_width );
821        var mobile_width = parseInt( swiper_opt.mobile_width );
822        //var swiper = new Swiper( swiper_elem, { for verson 5.6
823        var swiper = new Swiper(swiper_elem[0], { // for js version 8.0.3
824            direction: swiper_opt.direction,
825            slidesPerView: swiper_opt.slideitem,
826            initialSlide: swiper_opt.initialslide,
827            spaceBetween: 0,
828            simulateTouch:swiper_opt.simulateTouch,
829            mousewheel: {
830                releaseOnEdges:true,
831            },
832            speed: swiper_opt.speed,
833            pagination: {
834              el: '.swiper-pagination',
835              clickable: true,
836            },
837            navigation: {
838                nextEl: '.swiper-button-next',
839                prevEl: '.swiper-button-prev',
840            },
841            keyboard: {
842                enabled: swiper_opt.keyboardscroll,
843                onlyInViewport: false,
844            },
845            breakpoints: {
846                [tablet_width]: {
847                  direction: swiper_opt.tablet_direction,
848                },
849                [mobile_width]: {
850                    direction: swiper_opt.mobile_direction,
851                  },
852
853              }
854        });
855
856        if( swiper_opt.mousewheel == false){
857            swiper.mousewheel.disable();
858        }
859        if( true == swiper_opt.slide_custom_menu ) {
860        $('a[href^="#htmega-scroll-slide"]').on('click', function (e) {
861            e.preventDefault();
862
863            var fullIndex = $(this).attr('href');
864            var slideIndex = parseInt(fullIndex.replace('#htmega-scroll-slide-',''), 0);
865            if( fullIndex !== slideIndex && slideIndex > 0 ){
866                swiper.slideTo(slideIndex-1); 
867            }
868          });
869        }
870    }
871
872    /*=========== Post Grid Tab =======*/
873    var WidgetPostGridHandler = function ($scope, $) {
874
875        var postgridtab_elem = $scope.find('.ht-post-grid-tab').eq(0);
876        var postgridtab_opt = postgridtab_elem.data('postgridtab');
877
878        if( postgridtab_elem.length > 0 ){
879            $('.post-gridthumb-'+postgridtab_opt.wrapid+'').each(function () {
880                $(this).on('click', function (e) {
881                    e.preventDefault();
882                    $(this).next('.post-gridcontent-'+postgridtab_opt.wrapid+'').slideToggle().siblings('.post-gridcontent-'+postgridtab_opt.wrapid+'').slideUp();
883                    $(this).next('.post-gridcontent-'+postgridtab_opt.wrapid+'').toggleClass('is-visible').siblings('.post-gridcontent-').removeClass('is-visible');
884                });
885            });
886
887            $('.post-gridclose-'+postgridtab_opt.wrapid+'').on('click', function () {
888                $(this).parent('.post-gridcontent-'+postgridtab_opt.wrapid+'').slideUp();
889            });
890        }
891
892    }
893
894    /*=========== Image Magnifier (jQuery Magnify must load before this bundle; deps enforce order) =======*/
895    var WidgetImageMagnifierHandler = function ($scope, $) {
896        var run = function () {
897            if (typeof $.fn.magnify !== 'function') {
898                return false;
899            }
900            $scope.find('.magnifier-thumb-wrapper img.zoom').each(function () {
901                var $img = $(this);
902                if ($img.parent('div.magnify').length && typeof $img.destroy === 'function') {
903                    $img.destroy();
904                }
905                $img.magnify();
906            });
907            return true;
908        };
909        if (run()) {
910            return;
911        }
912        var n = 0;
913        var poll = window.setInterval(function () {
914            n += 1;
915            if (run() || n > 50) {
916                window.clearInterval(poll);
917            }
918        }, 50);
919    };
920
921    /*=========== Image Comparison =======*/
922    var WidgetImageComparisonHandler = function ($scope, $) {
923        if (typeof window.BeerSlider !== 'function') {
924            return;
925        }
926        if (typeof $.fn.BeerSlider !== 'function') {
927            $.fn.BeerSlider = function (options) {
928                options = options || {};
929                return this.each(function () {
930                    var $el = $(this);
931                    if ($el.find('.beer-range').length) {
932                        return;
933                    }
934                    new window.BeerSlider(this, options);
935                });
936            };
937        }
938        $scope.find('.beer-slider').each(function () {
939            var $el = $(this);
940            if ($el.find('.beer-range').length) {
941                return;
942            }
943            $el.BeerSlider({
944                start: $el.data('start'),
945            });
946        });
947    }
948  /*=========== Slick Content tab load option =======*/
949    var WidgetTabControll = function tabeCarouselController() {
950        htmegaTabsCarouselRefress( $(".htmega-tab-nav") );
951    }
952 
953    /*=========== Switcher content  carousel load option =======*/
954      var WidgetSwithcerControll = function switcherCarouselController() {
955        htmegaTabsCarouselRefress( $(".htmega-switcher-nav") );
956    }
957    
958
959    /*
960    * Tab carousel content refress
961    */
962    function htmegaTabsCarouselRefress( $tabmenus ) {
963        $tabmenus.on('click', 'a', function(e) {
964            e.preventDefault();
965            // slick refresh
966            if ($('.slick-slider').length > 0) {
967                var $id = $(this).attr('href');
968                $($id).find('.slick-slider').slick('refresh');
969            }
970        });
971    }
972    var HTMegaAudioPlayer = function ( $scope, $ ){
973        var container_elem = $scope.find('.htmega-audio-player-wrapper').eq(0);
974        if ( container_elem.length > 0 ) {
975            container_elem[0].style.display='flex';
976            var settings = container_elem.data('audio-settings');
977            var activeUniqClass = container_elem.find('.htmega-audio-player');
978            activeUniqClass.mediaelementplayer({
979                 shimScriptAccess: "always",
980                 alwaysShowControls: true,
981                features: settings['features'],
982                 hideVolumeOnTouchDevices: true,
983                 startVolume: parseFloat( settings['startVolume'] ),
984                 audioVolume: settings['audioVolume'],
985                 //loop: false,
986                 autoRewind: true,
987                 enableAutosize: true,
988                 stretching: 'auto',
989                 classPrefix: 'mejs-',
990                 enableKeyboard: true,
991                 pauseOtherPlayers: true,
992                 duration: -1,
993                 success: function (mediaElement, originalNode, instance) {
994                     mediaElement.setCurrentTime( parseFloat( settings['restrictTime'] ) );
995         
996                     mediaElement.addEventListener('progress', function() {
997                         const duration = mediaElement.duration;
998                         const durationContainer = $(mediaElement).siblings('.mejs__time-total').find('.mejs__duration');
999                         if (durationContainer.length > 0) {
1000                             durationContainer.text(mediaElement.formatTime(duration));
1001                         }
1002                     });
1003         
1004                     if (mediaElement) {
1005                        mediaElement.load();
1006                    }
1007                 }
1008             });
1009            //  pro fearrues
1010             if( settings?.playerIcons ){
1011                let playPauseButton = container_elem.find(".mejs-playpause-button button"),
1012                volumeButtion = container_elem.find(".mejs-volume-button button");
1013                playPauseButton.html(
1014                `<i aria-hidden="true" class="htmega-audio-play ${settings.playerIcons.play}"></i><i aria-hidden="true" class="htmega-audio-pause ${settings.playerIcons.pause}"></i><i aria-hidden="true" class="htmega-audio-replay ${settings.playerIcons.replay}"></i>`
1015                ),
1016                volumeButtion.html(`<i aria-hidden="true" class="htmega-audio-unmute ${settings.playerIcons.unmute}"></i><i aria-hidden="true" class="htmega-audio-mute ${settings.playerIcons.mute}"></i>`);
1017             }
1018       }
1019 
1020    }
1021
1022    // Run this code under Elementor.
1023    $(window).on('elementor/frontend/init', function () {
1024        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-tab-addons.default', WidgetTabControll);
1025        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-google-map-addons.default', WidgetGoogleMapHandler);
1026        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-accordion-addons.default', WidgetAccordionsMapHandler);
1027        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-progressbar-addons.default', WidgetPieChartMapHandler);
1028        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-countdown-addons.default', WidgetCountdownMapHandler);
1029        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-team-member-addons.default', WidgetTeamMemberPlusHandler);
1030        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-testimonial-addons.default', WidgetTestimonialCarouselHandler);
1031        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-newtsicker-addons.default', WidgetNewsTrickerHandler);
1032        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-magnific-popup-addons.default', WidgetLightboxHandler);
1033        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-videoplayer-addons.default', WidgetVideoPlayerHandler);
1034        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-instagram-addons.default', WidgetHtmegaCarouselHandler);
1035        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-tooltip-addons.default', WidgetTooltipHandler);
1036        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-popover-addons.default', WidgetPopoversHandler);
1037        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-notify-addons.default', WidgetNotifyHandler);
1038        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-counter-addons.default', WidgetCounterHandler);
1039        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-postslider-addons.default', WidgetHtmegaCarouselHandler);
1040        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-thumbgallery-addons.default', WidgetHtmegaThumbnailsgalleryHandler);
1041        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-imagemasonryd-addons.default', WidgetImageMasonaryHandler);
1042        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-scrollnavigation-addons.default', WidgetNavigationScrollHandler);
1043        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-twitterfeed-addons.default', WidgetHtmegaCarouselHandler);
1044        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-carousel-addons.default', WidgetHtmegaCarouselHandler);
1045        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-postcarousel-addons.default', WidgetHtmegaCarouselHandler);
1046        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-postgridtab-addons.default', WidgetPostGridHandler);
1047        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-imagemagnifier-addons.default', WidgetImageMagnifierHandler);
1048        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-imagecomparison-addons.default', WidgetImageComparisonHandler);
1049        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-panelslider-addons.default', WidgetHtmegaCarouselHandler);
1050        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-switcher-addons.default', WidgetSwithcerControll);
1051        elementorFrontend.hooks.addAction( 'frontend/element_ready/htmega-audio-player-addons.default', HTMegaAudioPlayer);
1052    });
1053
1054
1055    
1056})(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.