( function( $, elementor ) { "use strict"; var WprElements = { init: function() { var widgets = { 'wpr-nav-menu.default' : WprElements.widgetNavMenu, 'wpr-onepage-nav.default' : WprElements.OnepageNav, 'wpr-grid.default' : WprElements.widgetGrid, 'wpr-magazine-grid.default' : WprElements.widgetMagazineGrid, 'wpr-media-grid.default' : WprElements.widgetGrid, 'wpr-woo-grid.default' : WprElements.widgetGrid, 'wpr-woo-category-grid-pro.default' : WprElements.widgetGrid, 'wpr-featured-media.default' : WprElements.widgetFeaturedMedia, 'wpr-countdown.default' : WprElements.widgetCountDown, 'wpr-google-maps.default' : WprElements.widgetGoogleMaps, 'wpr-before-after.default' : WprElements.widgetBeforeAfter, 'wpr-mailchimp.default' : WprElements.widgetMailchimp, 'wpr-advanced-slider.default' : WprElements.widgetAdvancedSlider, 'wpr-testimonial.default' : WprElements.widgetTestimonialCarousel, 'wpr-search.default' : WprElements.widgetSearch, 'wpr-advanced-text.default' : WprElements.widgetAdvancedText, 'wpr-progress-bar.default' : WprElements.widgetProgressBar, 'wpr-image-hotspots.default' : WprElements.widgetImageHotspots, 'wpr-flip-box.default' : WprElements.widgetFlipBox, 'wpr-content-ticker.default' : WprElements.widgetContentTicker, 'wpr-tabs.default' : WprElements.widgetTabs, 'wpr-content-toggle.default' : WprElements.widgetContentToogle, 'wpr-back-to-top.default': WprElements.widgetBackToTop, 'wpr-lottie-animations.default': WprElements.widgetLottieAnimations, 'wpr-posts-timeline.default' : WprElements.widgetPostsTimeline, 'wpr-sharing-buttons.default' : WprElements.widgetSharingButtons, 'wpr-flip-carousel.default': WprElements.widgetFlipCarousel, 'wpr-feature-list.default' : WprElements.widgetFeatureList, 'wpr-product-media.default' : WprElements.widgetProductMedia, 'wpr-product-add-to-cart.default' : WprElements.widgetProductAddToCart, 'wpr-product-mini-cart.default' : WprElements.widgetProductMiniCart, 'wpr-product-filters.default' : WprElements.widgetProductFilters, 'wpr-page-cart.default' : WprElements.widgetPageCart, 'wpr-my-account-pro.default' : WprElements.widgetPageMyAccount, 'wpr-reading-progress-bar.default' : WprElements.widgetReadingProgressBar, 'wpr-data-table.default' : WprElements.widgetDataTable, 'global': WprElements.widgetSection, // Single 'wpr-post-media.default' : WprElements.widgetPostMedia, }; $.each( widgets, function( widget, callback ) { window.elementorFrontend.hooks.addAction( 'frontend/element_ready/' + widget, callback ); }); }, widgetPostMedia: function( $scope ) { // var gallery = $scope.find( '.wpr-gallery-slider' ), // gallerySettings = gallery.attr( 'data-slick' ); // gallery.animate({ 'opacity' : '1' }, 1000 );//tmp // if ( '[]' !== gallerySettings ) { // gallery.slick({ // appendDots : $scope.find( '.wpr-gallery-slider-dots' ), // customPaging : function ( slider, i ) { // var slideNumber = (i + 1), // totalSlides = slider.slideCount; // return ''; // } // }); // } // Lightbox var lightboxSettings = $( '.wpr-featured-media-image' ).attr( 'data-lightbox' ); if ( typeof lightboxSettings !== typeof undefined && lightboxSettings !== false && ! WprElements.editorCheck() ) { var MediaWrap = $scope.find( '.wpr-featured-media-wrap' ); lightboxSettings = JSON.parse( lightboxSettings ); // Init Lightbox MediaWrap.lightGallery( lightboxSettings ); // Show/Hide Controls MediaWrap.on( 'onAferAppendSlide.lg, onAfterSlide.lg', function( event, prevIndex, index ) { var lightboxControls = $( '#lg-actual-size, #lg-zoom-in, #lg-zoom-out, #lg-download' ), lightboxDownload = $( '#lg-download' ).attr( 'href' ); if ( $( '#lg-download' ).length ) { if ( -1 === lightboxDownload.indexOf( 'wp-content' ) ) { lightboxControls.addClass( 'wpr-hidden-element' ); } else { lightboxControls.removeClass( 'wpr-hidden-element' ); } } // Autoplay Button if ( '' === lightboxSettings.autoplay ) { $( '.lg-autoplay-button' ).css({ 'width' : '0', 'height' : '0', 'overflow' : 'hidden' }); } }); } }, // End widgetFeaturedMedia widgetSection: function( $scope ) { if ( $scope.attr('data-wpr-particles') || $scope.find('.wpr-particle-wrapper').attr('data-wpr-particles-editor') ) { particlesEffect(); } if ( $scope.hasClass('wpr-jarallax') || $scope.hasClass('wpr-jarallax-yes') ) { parallaxBackground(); } if ( $scope.hasClass('wpr-parallax-yes') ) { parallaxMultiLayer(); } if ( $scope.hasClass('wpr-sticky-section-yes') ) { var positionType = !WprElements.editorCheck() ? $scope.attr('data-wpr-position-type') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-position-type'), positionLocation = !WprElements.editorCheck() ? $scope.attr('data-wpr-position-location') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-position-location'), positionOffset = !WprElements.editorCheck() ? $scope.attr('data-wpr-position-offset') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-position-offset'), viewportWidth = $('body').prop('clientWidth') + 17, availableDevices = !WprElements.editorCheck() ? $scope.attr('data-wpr-sticky-devices') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-sticky-devices'), activeDevices = !WprElements.editorCheck() ? $scope.attr('data-wpr-active-breakpoints') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-active-breakpoints'), stickySectionExists = $scope.hasClass('wpr-sticky-section-yes') || $scope.find('.wpr-sticky-section-yes-editor') ? true : false, positionStyle, adminBarHeight, stickyHeaderFooter = $scope.closest('div[data-elementor-type="wp-post"]').length ? $scope.closest('div[data-elementor-type="wp-post"]') : '', headerFooterZIndex = !WprElements.editorCheck() ? $scope.attr('data-wpr-z-index') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-z-index'); if ( !$scope.find('.wpr-sticky-section-yes-editor').length) { positionType = $scope.attr('data-wpr-position-type'); positionLocation = $scope.attr('data-wpr-position-location'); positionOffset = $scope.attr('data-wpr-position-offset'); availableDevices = $scope.attr('data-wpr-sticky-devices'); activeDevices = $scope.attr('data-wpr-active-breakpoints'); headerFooterZIndex = $scope.attr('data-wpr-z-index'); } if ( 'top' === positionLocation && 'auto' === $scope.css('top') ) { var offsetTop = 0; $scope.css('top', 0); } else { var offsetTop = +$scope.css('top').slice(0, -2); } if ( 0 == availableDevices.length ) { positionType = 'static'; } if( WprElements.editorCheck() && availableDevices ) { var attributes = $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-sticky-devices'); $scope.attr('data-wpr-sticky-devices', attributes); availableDevices = $scope.attr('data-wpr-sticky-devices'); } changePositionType(); changeAdminBarOffset(); $(window).resize(function() { viewportWidth = $('body').prop('clientWidth') + 17, changePositionType(); }); if (!stickySectionExists) { positionStyle = 'static'; } function changePositionType() { if ( !$scope.hasClass('wpr-sticky-section-yes') || !$scope.find('.wpr-sticky-section-yes-editor') ) { positionStyle = 'static'; return; } var checkDevices = [['mobile_sticky', 768], ['mobile_extra_sticky', 881], ['tablet_sticky', 1025], ['tablet_extra_sticky', 1201], ['laptop_sticky', 1216], ['desktop_sticky', 2400], ['widescreen_sticky', 4000]]; var emptyVariables = []; var checkedDevices = checkDevices.filter((item, index) => { return activeDevices.indexOf(item[0]) != -1; }).reverse(); checkedDevices.forEach((device, index) => { if ( (device[1] > viewportWidth) && availableDevices.indexOf(device[0]) === -1 ) { positionStyle = activeDevices?.indexOf(device[0]) !== -1 ? 'static' : (emptyVariables[index - 1] ? emptyVariables[index - 1] : positionType); emptyVariables[index] = positionStyle; } else if ( ( device[1] > viewportWidth) && availableDevices.indexOf(device[0]) !== -1 ) { positionStyle = positionType; } }); applyPosition(); } function applyPosition() { var bottom = +window.innerHeight - (+$scope.css('top').slice(0, -2) + $scope.height()); var top = +window.innerHeight - (+$scope.css('bottom').slice(0, -2) + $scope.height()); if ( 'top' === positionLocation ) { $scope.css({'position': positionStyle }); if ( '' !== stickyHeaderFooter ) { // stickyHeaderFooter = stickyHeaderFooter.find('.wpr-sticky-section-yes'); stickyHeaderFooter.css({'position': positionStyle, 'top': positionOffset + 'px', 'bottom': 'auto', 'z-index': headerFooterZIndex, 'width': '100%' }); } } else { $scope.css({'position': positionStyle }); if ( '' !== stickyHeaderFooter ) { stickyHeaderFooter = stickyHeaderFooter.find('.wpr-sticky-section-yes'); stickyHeaderFooter.css({'position': positionStyle, 'bottom': positionOffset + 'px', 'top': 'auto', 'z-index': headerFooterZIndex, 'width': '100%' }); } } } function changeAdminBarOffset() { if($('#wpadminbar').length) { adminBarHeight = $('#wpadminbar').css('height').slice(0, $('#wpadminbar').css('height').length - 2); if ( 'top' === positionLocation && ( 'fixed' == $scope.css('position') || 'sticky' == $scope.css('position') ) ) { $scope.css('top', +adminBarHeight + offsetTop + 'px'); $scope.css('bottom', 'auto'); } } } } function particlesEffect() { var elementType = $scope.data('element_type'), sectionID = $scope.data('id'), particlesJSON = ! WprElements.editorCheck() ? $scope.attr('data-wpr-particles') : $scope.find('.wpr-particle-wrapper').attr('data-wpr-particles-editor'); if ( 'section' === elementType && undefined !== particlesJSON ) { // Frontend if ( ! WprElements.editorCheck() ) { $scope.prepend('
'); particlesJS('wpr-particle-'+ sectionID, $scope.attr('particle-source') == 'wpr_particle_json_custom' ? JSON.parse(particlesJSON) : modifyJSON(particlesJSON)); // Editor } else { if ( $scope.hasClass('wpr-particle-yes') ) { particlesJS( 'wpr-particle-'+ sectionID, $scope.find('.wpr-particle-wrapper').attr('particle-source') == 'wpr_particle_json_custom' ? JSON.parse(particlesJSON) : modifyJSON(particlesJSON)); $scope.find('.elementor-column').css('z-index', 9); $(window).trigger('resize'); } else { $scope.find('.wpr-particle-wrapper').remove(); } } } } function modifyJSON(json) { var wpJson = JSON.parse(json), particles_quantity = ! WprElements.editorCheck() ? $scope.attr('wpr-quantity') : $scope.find('.wpr-particle-wrapper').attr('wpr-quantity'), particles_color = ! WprElements.editorCheck() ? $scope.attr('wpr-color') || '#000000' : $scope.find('.wpr-particle-wrapper').attr('wpr-color') ? $scope.find('.wpr-particle-wrapper').attr('wpr-color') : '#000000', particles_speed = ! WprElements.editorCheck() ? $scope.attr('wpr-speed') : $scope.find('.wpr-particle-wrapper').attr('wpr-speed'), particles_shape = ! WprElements.editorCheck() ? $scope.attr('wpr-shape') : $scope.find('.wpr-particle-wrapper').attr('wpr-shape'), particles_size = ! WprElements.editorCheck() ? $scope.attr('wpr-size') : $scope.find('.wpr-particle-wrapper').attr('wpr-size'); wpJson.particles.size.value = particles_size; wpJson.particles.number.value = particles_quantity; wpJson.particles.color.value = particles_color; wpJson.particles.shape.type = particles_shape; wpJson.particles.line_linked.color = particles_color; wpJson.particles.move.speed = particles_speed; return wpJson; } function parallaxBackground() { if ( $scope.hasClass('wpr-jarallax-yes') ) { if ( ! WprElements.editorCheck() && $scope.hasClass('wpr-jarallax') ) { $scope.css('background-image', 'url("' + $scope.attr('bg-image') + '")'); $scope.jarallax({ type: $scope.attr('scroll-effect'), speed: $scope.attr('speed-data'), }); } else if ( WprElements.editorCheck() ) { $scope.css('background-image', 'url("' + $scope.find('.wpr-jarallax').attr('bg-image-editor') + '")'); $scope.jarallax({ type: $scope.find('.wpr-jarallax').attr('scroll-effect-editor'), speed: $scope.find('.wpr-jarallax').attr('speed-data-editor') }); } } } function parallaxMultiLayer() { if ( $scope.hasClass('wpr-parallax-yes') ) { var scene = document.getElementsByClassName('wpr-parallax-multi-layer'); var parallaxInstance = Array.from(scene).map(item => { return new Parallax(item, { invertY: item.getAttribute('direction') == 'yes' ? true : false, invertX: item.getAttribute('direction') == 'yes' ? true : false, scalarX: item.getAttribute('scalar-speed'), scalarY: item.getAttribute('scalar-speed'), hoverOnly: true, pointerEvents: true }); }); parallaxInstance.forEach(parallax => { parallax.friction(0.2, 0.2); }); } if ( ! WprElements.editorCheck() ) { var newScene = []; document.querySelectorAll('.wpr-parallax-multi-layer').forEach((element, index) => { element.parentElement.style.position = "relative"; element.style.position = "absolute"; newScene.push(element); element.remove(); }); document.querySelectorAll('.wpr-parallax-ml-children').forEach((element, index) => { element.style.position = "absolute"; element.style.top = element.getAttribute('style-top'); element.style.left = element.getAttribute('style-left'); }); $('.wpr-parallax-yes').each(function(index) { $(this).append(newScene[index]); }); } } }, // end widgetSection widgetNavMenu: function( $scope ) { var $navMenu = $scope.find( '.wpr-nav-menu-container' ), $mobileNavMenu = $scope.find( '.wpr-mobile-nav-menu-container' ); // Menu var subMenuFirst = $navMenu.find( '.wpr-nav-menu > li.menu-item-has-children' ), subMenuDeep = $navMenu.find( '.wpr-sub-menu li.menu-item-has-children' ); if ( $navMenu.attr('data-trigger') === 'click' ) { // First Sub subMenuFirst.children('a').on( 'click', function(e) { var currentItem = $(this).parent(), childrenSub = currentItem.children('.wpr-sub-menu'); // Reset subMenuFirst.not(currentItem).removeClass('wpr-sub-open'); if ( $navMenu.hasClass('wpr-nav-menu-horizontal') || ( $navMenu.hasClass('wpr-nav-menu-vertical') && $scope.hasClass('wpr-sub-menu-position-absolute') ) ) { subMenuAnimation( subMenuFirst.children('.wpr-sub-menu'), false ); } if ( ! currentItem.hasClass( 'wpr-sub-open' ) ) { e.preventDefault(); currentItem.addClass('wpr-sub-open'); subMenuAnimation( childrenSub, true ); } else { currentItem.removeClass('wpr-sub-open'); subMenuAnimation( childrenSub, false ); } }); // Deep Subs subMenuDeep.on( 'click', function(e) { var currentItem = $(this), childrenSub = currentItem.children('.wpr-sub-menu'); // Reset if ( $navMenu.hasClass('wpr-nav-menu-horizontal') ) { subMenuAnimation( subMenuDeep.find('.wpr-sub-menu'), false ); } if ( ! currentItem.hasClass( 'wpr-sub-open' ) ) { e.preventDefault(); currentItem.addClass('wpr-sub-open'); subMenuAnimation( childrenSub, true ); } else { currentItem.removeClass('wpr-sub-open'); subMenuAnimation( childrenSub, false ); } }); // Reset Subs on Document click $( document ).mouseup(function (e) { if ( ! subMenuFirst.is(e.target) && subMenuFirst.has(e.target).length === 0 ) { subMenuFirst.not().removeClass('wpr-sub-open'); subMenuAnimation( subMenuFirst.children('.wpr-sub-menu'), false ); } if ( ! subMenuDeep.is(e.target) && subMenuDeep.has(e.target).length === 0 ) { subMenuDeep.removeClass('wpr-sub-open'); subMenuAnimation( subMenuDeep.children('.wpr-sub-menu'), false ); } }); } else { // Mouse Over subMenuFirst.on( 'mouseenter', function() { if ( $navMenu.hasClass('wpr-nav-menu-vertical') && $scope.hasClass('wpr-sub-menu-position-absolute') ) { $navMenu.find('li').not(this).children('.wpr-sub-menu').hide(); // BUGFIX: when menu is vertical and absolute positioned, lvl2 depth sub menus wont show properly on hover } subMenuAnimation( $(this).children('.wpr-sub-menu'), true ); }); // Deep Subs subMenuDeep.on( 'mouseenter', function() { subMenuAnimation( $(this).children('.wpr-sub-menu'), true ); }); // Mouse Leave if ( $navMenu.hasClass('wpr-nav-menu-horizontal') ) { subMenuFirst.on( 'mouseleave', function() { subMenuAnimation( $(this).children('.wpr-sub-menu'), false ); }); subMenuDeep.on( 'mouseleave', function() { subMenuAnimation( $(this).children('.wpr-sub-menu'), false ); }); } else { $navMenu.on( 'mouseleave', function() { subMenuAnimation( $(this).find('.wpr-sub-menu'), false ); }); } } // Mobile Menu var mobileMenu = $mobileNavMenu.find( '.wpr-mobile-nav-menu' ); // Toggle Button $mobileNavMenu.find( '.wpr-mobile-toggle' ).on( 'click', function() { $(this).toggleClass('wpr-mobile-toggle-fx'); if ( ! $(this).hasClass('.wpr-mobile-toggle-open') ) { $(this).addClass('.wpr-mobile-toggle-open'); if ( $(this).find('.wpr-mobile-toggle-text').length ) { $(this).children().eq(0).hide(); $(this).children().eq(1).show(); } } else { $(this).removeClass('.wpr-mobile-toggle-open'); $(this).trigger('focusout'); if ( $(this).find('.wpr-mobile-toggle-text').length ) { $(this).children().eq(1).hide(); $(this).children().eq(0).show(); } } // Show Menu $(this).parent().next().stop().slideToggle(); // Fix Width fullWidthMobileDropdown(); }); // Sub Menu Class mobileMenu.find('.sub-menu').removeClass('wpr-sub-menu').addClass('wpr-mobile-sub-menu'); // Sub Menu Dropdown mobileMenu.find('.menu-item-has-children').children('a').on( 'click', function(e) { var parentItem = $(this).closest('li'); // Toggle if ( ! parentItem.hasClass('wpr-mobile-sub-open') ) { e.preventDefault(); parentItem.addClass('wpr-mobile-sub-open'); parentItem.children('.wpr-mobile-sub-menu').first().stop().slideDown(); } else { parentItem.removeClass('wpr-mobile-sub-open'); parentItem.children('.wpr-mobile-sub-menu').first().stop().slideUp(); } }); // Run Functions fullWidthMobileDropdown(); // Run Functions on Resize $(window).smartresize(function() { fullWidthMobileDropdown(); }); // Full Width Dropdown function fullWidthMobileDropdown() { if ( ! $scope.hasClass( 'wpr-mobile-menu-full-width' ) || ! $scope.closest('.elementor-column').length ) { return; } var eColumn = $scope.closest('.elementor-column'), mWidth = $scope.closest('.elementor-top-section').outerWidth() - 2 * mobileMenu.offset().left, mPosition = eColumn.offset().left + parseInt(eColumn.css('padding-left'), 10); mobileMenu.css({ 'width' : mWidth +'px', 'left' : - mPosition +'px' }); } // Sub Menu Animation function subMenuAnimation( selector, show ) { if ( show === true ) { if ( $scope.hasClass('wpr-sub-menu-fx-slide') ) { selector.stop().slideDown(); } else { selector.stop().fadeIn(); } } else { if ( $scope.hasClass('wpr-sub-menu-fx-slide') ) { selector.stop().slideUp(); } else { selector.stop().fadeOut(); } } } }, // End widgetNavMenu OnepageNav: function( $scope ) { $scope.find( '.wpr-onepage-nav-item' ).on( 'click', function(event) { event.preventDefault(); var section = $( $(this).find( 'a' ).attr( 'href' ) ), scrollSpeed = parseInt( $(this).parent().attr( 'data-speed' ), 10 ); $( 'body' ).animate({ scrollTop: section.offset().top }, scrollSpeed ); // Active Class getSectionOffset( $(window).scrollTop() ); }); // Trigger Fake Scroll if ( 'yes' === $scope.find( '.wpr-onepage-nav' ).attr( 'data-highlight' ) ) { setTimeout(function() { $(window).scroll(); }, 10 ); } // Active Class $(window).scroll(function() { getSectionOffset( $(this).scrollTop() ); }); // Get Offset function getSectionOffset( scrollTop ) { if ( 'yes' !== $scope.find( '.wpr-onepage-nav' ).attr( 'data-highlight' ) ) { return; } // Reset Active $scope.find( '.wpr-onepage-nav-item' ).children( 'a' ).removeClass( 'wpr-onepage-active-item' ); // Set Active $( '.elementor-section' ).each(function() { var secOffTop = $(this).offset().top, secOffBot = secOffTop + $(this).outerHeight(); if ( scrollTop >= secOffTop && scrollTop < secOffBot ) { $scope.find( '.wpr-onepage-nav-item' ).children( 'a[href="#'+ $(this).attr('id') +'"]' ).addClass( 'wpr-onepage-active-item' ); } }); } }, // End OnepageNav widgetGrid: function( $scope ) { var iGrid = $scope.find( '.wpr-grid' ); var loadedItems; if ( ! iGrid.length ) { return; } if ( $scope.find('.woocommerce-result-count').length ) { var resultCountText = $scope.find('.woocommerce-result-count').text(); resultCountText = resultCountText.replace( /\d\u2013\d+/, '1\u2013' + $scope.find('.wpr-grid-item').length ); $scope.find('.woocommerce-result-count').text(resultCountText); } // Settings var settings = iGrid.attr( 'data-settings' ); if ( $scope.find(".wpr-grid-orderby form").length ) { var select = $scope.find(".wpr-grid-orderby form"); $scope.find(".orderby").on("change", function () { select.trigger("submit"); }); } // Grid if ( typeof settings !== typeof undefined && settings !== false ) { settings = JSON.parse( iGrid.attr( 'data-settings' ) ); // Init Functions isotopeLayout( settings ); setTimeout(function() { isotopeLayout( settings ); }, 100 ); if ( WprElements.editorCheck() ) { setTimeout(function() { isotopeLayout( settings ); }, 500 ); setTimeout(function() { isotopeLayout( settings ); }, 1000 ); } $( window ).on( 'load', function() { setTimeout(function() { isotopeLayout( settings ); }, 100 ); }); $(window).smartresize(function(){ setTimeout(function() { isotopeLayout( settings ); }, 200 ); }); isotopeFilters( settings ); var initialItems = 0; // Filtering Transitions iGrid.on( 'arrangeComplete', function( event, filteredItems ) { var deepLinkStager = 0, filterStager = 0, initStager = 0, duration = settings.animation_duration, filterDuration = settings.filters_animation_duration; if ( iGrid.hasClass( 'grid-images-loaded' ) ) { initStager = 0; } else { iGrid.css( 'opacity', '1' ); // Default Animation if ( 'default' === settings.animation && 'default' === settings.filters_animation ) { return; } } for ( var key in filteredItems ) { if ( initialItems == 0 || key > initialItems - 1 ) { initStager += settings.animation_delay; $scope.find( filteredItems[key]['element'] ).find( '.wpr-grid-item-inner' ).css({ 'opacity' : '1', 'top' : '0', 'transform' : 'scale(1)', 'transition' : 'all '+ duration +'s ease-in '+ initStager +'s', }); } filterStager += settings.filters_animation_delay; if ( iGrid.hasClass( 'grid-images-loaded' ) ) { $scope.find( filteredItems[key]['element'] ).find( '.wpr-grid-item-inner' ).css({ 'transition' : 'all '+ filterDuration +'s ease-in '+ filterStager +'s', }); } // DeepLinking var deepLink = window.location.hash; if ( deepLink.indexOf( '#filter:' ) >= 0 && deepLink.indexOf( '#filter:*' ) < 0 ) { deepLink = deepLink.replace( '#filter:', '' ); $scope.find( filteredItems[key]['element'] ).filter(function() { if ( $(this).hasClass( deepLink ) ) { deepLinkStager += settings.filters_animation_delay; return $(this); } }).find( '.wpr-grid-item-inner' ).css({ 'transition-delay' : deepLinkStager +'s' }); } } initialItems = filteredItems.length; }); // Grid Images Loaded iGrid.imagesLoaded().progress( function( instance, image ) { if ( '1' !== iGrid.css( 'opacity' ) ) { iGrid.css( 'opacity', '1' ); } setTimeout(function() { iGrid.addClass( 'grid-images-loaded' ); }, 500 ); }); // Infinite Scroll / Load More if ( ( 'load-more' === settings.pagination_type || 'infinite-scroll' === settings.pagination_type ) && ( $scope.find( '.wpr-grid-pagination' ).length && ! WprElements.editorCheck() ) ) { var pagination = $scope.find( '.wpr-grid-pagination' ), scopeClass = '.elementor-element-'+ $scope.attr( 'data-id' ); var navClass = false, threshold = false; if ( 'infinite-scroll' === settings.pagination_type ) { threshold = 300; navClass = scopeClass +' .wpr-load-more-btn'; } iGrid.infiniteScroll({ path: scopeClass +' .wpr-grid-pagination a', hideNav: navClass, append: false, history: false, scrollThreshold: threshold, status: scopeClass +' .page-load-status', onInit: function() { this.on( 'load', function() { iGrid.removeClass( 'grid-images-loaded' ); }); } }); // Request iGrid.on( 'request.infiniteScroll', function( event, path ) { pagination.find( '.wpr-load-more-btn' ).hide(); pagination.find( '.wpr-pagination-loading' ).css( 'display', 'inline-block' ); }); // Load var pagesLoaded = 0; iGrid.on( 'load.infiniteScroll', function( event, response ) { pagesLoaded++; // get posts from response var items = $( response ).find( scopeClass ).find( '.wpr-grid-item' ); if ( $scope.find('.woocommerce-result-count').length ) { var resultCount = $scope.find('.woocommerce-result-count').text(); var updatedResultCount = resultCount.replace( /\d\u2013\d+/, '1\u2013' + ( $scope.find('.wpr-grid-item').length + items.length ) ); $scope.find('.woocommerce-result-count').text(updatedResultCount); } iGrid.infiniteScroll( 'appendItems', items ); iGrid.isotope( 'appended', items ); items.imagesLoaded().progress( function( instance, image ) { isotopeLayout( settings ); // Fix Layout setTimeout(function() { isotopeLayout( settings ); isotopeFilters( settings ); }, 10 ); setTimeout(function() { iGrid.addClass( 'grid-images-loaded' ); }, 500 ); }); // Loading pagination.find( '.wpr-pagination-loading' ).hide(); if ( settings.pagination_max_pages - 1 !== pagesLoaded ) { if ( 'load-more' === settings.pagination_type ) { pagination.find( '.wpr-load-more-btn' ).fadeIn(); if ( '*' !== $scope.find('.wpr-active-filter').attr('data-filter') ) { let dataFilterClass = $scope.find('.wpr-active-filter').attr('data-filter').substring(1); items.each(function() { if ( !$(this).hasClass(dataFilterClass) ) { loadedItems = false; } else { loadedItems = true; return false; } }); if ( !loadedItems ) { $scope.find( '.wpr-grid' ).infiniteScroll( 'loadNextPage' ); } } } } else { pagination.find( '.wpr-pagination-finish' ).fadeIn( 1000 ); pagination.delay( 2000 ).fadeOut( 1000 ); setTimeout(function() { pagination.find( '.wpr-pagination-loading' ).hide(); }, 500 ); } // Init Likes setTimeout(function() { postLikes( settings ); }, 300 ); // Init Lightbox lightboxPopup( settings ); // Fix Lightbox iGrid.data( 'lightGallery' ).destroy( true ); iGrid.lightGallery( settings.lightbox ); // Init Media Hover Link mediaHoverLink(); // Init Post Sharing postSharing(); }); pagination.find( '.wpr-load-more-btn' ).on( 'click', function() { iGrid.infiniteScroll( 'loadNextPage' ); return false; }); } // Slider } else { iGrid.animate({ 'opacity': '1' }, 1000); var sliderClass = $scope.attr('class'), sliderColumnsDesktop = sliderClass.match(/wpr-grid-slider-columns-\d/) ? sliderClass.match(/wpr-grid-slider-columns-\d/).join().slice(-1) : 2, sliderColumnsWideScreen = sliderClass.match(/columns--widescreen\d/) ? sliderClass.match(/columns--widescreen\d/).join().slice(-1) : sliderColumnsDesktop, sliderColumnsLaptop = sliderClass.match(/columns--laptop\d/) ? sliderClass.match(/columns--laptop\d/).join().slice(-1) : sliderColumnsDesktop, sliderColumnsTabletExtra = sliderClass.match(/columns--tablet_extra\d/) ? sliderClass.match(/columns--tablet_extra\d/).join().slice(-1) : sliderColumnsTablet, sliderColumnsTablet = sliderClass.match(/columns--tablet\d/) ? sliderClass.match(/columns--tablet\d/).join().slice(-1) : 2, sliderColumnsMobileExtra = sliderClass.match(/columns--mobile_extra\d/) ? sliderClass.match(/columns--mobile_extra\d/).join().slice(-1) : sliderColumnsTablet, sliderColumnsMobile = sliderClass.match(/columns--mobile\d/) ? sliderClass.match(/columns--mobile\d/).join().slice(-1) : 1, sliderSlidesToScroll = sliderClass.match(/wpr-grid-slides-to-scroll-\d/) ? +(sliderClass.match(/wpr-grid-slides-to-scroll-\d/).join().slice(-1)) : 1; iGrid.slick({ appendDots : $scope.find( '.wpr-grid-slider-dots' ), customPaging : function ( slider, i ) { var slideNumber = (i + 1), totalSlides = slider.slideCount; return ''; }, slidesToShow: sliderColumnsDesktop, responsive: [ { breakpoint: 10000, settings: { slidesToShow: sliderColumnsWideScreen, slidesToScroll: sliderSlidesToScroll > sliderColumnsWideScreen ? 1 : sliderSlidesToScroll } }, { breakpoint: 2399, settings: { slidesToShow: sliderColumnsDesktop, slidesToScroll: sliderSlidesToScroll > sliderColumnsDesktop ? 1 : sliderSlidesToScroll } }, { breakpoint: 1221, settings: { slidesToShow: sliderColumnsLaptop, slidesToScroll: sliderSlidesToScroll > sliderColumnsLaptop ? 1 : sliderSlidesToScroll } }, { breakpoint: 1200, settings: { slidesToShow: sliderColumnsTabletExtra, slidesToScroll: sliderSlidesToScroll > sliderColumnsTabletExtra ? 1 : sliderSlidesToScroll } }, { breakpoint: 1024, settings: { slidesToShow: sliderColumnsTablet, slidesToScroll: sliderSlidesToScroll > sliderColumnsTablet ? 1 : sliderSlidesToScroll } }, { breakpoint: 880, settings: { slidesToShow: sliderColumnsMobileExtra, slidesToScroll: sliderSlidesToScroll > sliderColumnsMobileExtra ? 1 : sliderSlidesToScroll } }, { breakpoint: 768, settings: { slidesToShow: sliderColumnsMobile, slidesToScroll: sliderSlidesToScroll > sliderColumnsMobile ? 1 : sliderSlidesToScroll } } ], }); // Adjust Horizontal Pagination if ( $scope.find( '.slick-dots' ).length && $scope.hasClass( 'wpr-grid-slider-dots-horizontal') ) { // Calculate Width var dotsWrapWidth = $scope.find( '.slick-dots li' ).outerWidth() * $scope.find( '.slick-dots li' ).length - parseInt( $scope.find( '.slick-dots li span' ).css( 'margin-right' ), 10 ); // on Load if ( $scope.find( '.slick-dots' ).length ) { $scope.find( '.slick-dots' ).css( 'width', dotsWrapWidth ); } // on Resize // TODO: Change all resize functions to smartresize (debounce) $(window).on( 'resize', function() { setTimeout(function() { // Calculate Width var dotsWrapWidth = $scope.find( '.slick-dots li' ).outerWidth() * $scope.find( '.slick-dots li' ).length - parseInt( $scope.find( '.slick-dots li span' ).css( 'margin-right' ), 10 ); // Set Width $scope.find( '.slick-dots' ).css( 'width', dotsWrapWidth ); }, 300 ); }); } settings = JSON.parse( iGrid.attr( 'data-slick' ) ); } // Add To Cart AJAX if ( iGrid.find( '.wpr-grid-item-add-to-cart' ).length ) { var addCartIcon = iGrid.find( '.wpr-grid-item-add-to-cart' ).find( 'i' ), addCartIconClass = addCartIcon.attr( 'class' ); if ( addCartIcon.length ) { addCartIconClass = addCartIconClass.substring( addCartIconClass.indexOf('fa-'), addCartIconClass.length ); } $( 'body' ).on( 'adding_to_cart', function( ev, button, data ) { button.fadeTo( 'slow', 0 ); }); $( 'body' ).on( 'added_to_cart', function(ev, fragments, hash, button) { button.next().fadeTo( 700, 1 ); button.css('display', 'none'); if ( 'sidebar' === button.data('atc-popup') ) { if ( $('.wpr-mini-cart-toggle-wrap a').length ) { $('.wpr-mini-cart-toggle-wrap a').each(function() { if ( 'none' === $(this).closest('.wpr-mini-cart-inner').find('.wpr-mini-cart').css('display') ) { $(this).trigger('click'); } }); } } else if ( 'popup' === button.data('atc-popup') ) { var popupItem = button.closest('.wpr-grid-item'), popupText = popupItem.find('.wpr-grid-item-title').text(), popupLink = button.next().attr('href'), popupImageSrc = popupItem.find('.wpr-grid-image-wrap').length ? popupItem.find('.wpr-grid-image-wrap').data('src') : '', popupAnimation = button.data('atc-animation'), fadeOutIn = button.data('atc-fade-out-in'), animTime = button.data('atc-animation-time'), popupImage, animationClass = 'wpr-added-to-cart-default', removeAnimationClass; if ( 'slide-left' === popupAnimation ) { animationClass = 'wpr-added-to-cart-slide-in-left'; removeAnimationClass = 'wpr-added-to-cart-slide-out-left'; } else if ( 'scale-up' === popupAnimation ) { animationClass = 'wpr-added-to-cart-scale-up'; removeAnimationClass = 'wpr-added-to-cart-scale-down'; } else if ( 'skew' === popupAnimation ) { animationClass = 'wpr-added-to-cart-skew'; removeAnimationClass = 'wpr-added-to-cart-skew-off'; } else if ( 'fade' === popupAnimation ) { animationClass = 'wpr-added-to-cart-fade'; removeAnimationClass = 'wpr-added-to-cart-fade-out'; } else { removeAnimationClass = 'wpr-added-to-cart-popup-hide'; } if ( '' !== popupImageSrc ) { popupImage = '
'; } else { popupImage = ''; } $(this).find('.wpr-grid').append('
'+ popupImage +'

'+ popupText +' was added to cart

View Cart

'); setTimeout(() => { $(this).find('.wpr-added-to-cart-popup').addClass(removeAnimationClass); setTimeout(() => { $(this).find('.wpr-added-to-cart-popup').remove(); }, animTime * 1000); }, fadeOutIn * 1000); } if ( addCartIcon.length ) { button.find( 'i' ).removeClass( addCartIconClass ).addClass( 'fa-check' ); setTimeout(function() { button.find( 'i' ).removeClass( 'fa-check' ).addClass( addCartIconClass ); }, 3500 ); } }); } // Init Post Sharing postSharing(); // Post Sharing function postSharing() { if ( $scope.find( '.wpr-sharing-trigger' ).length ) { var sharingTrigger = $scope.find( '.wpr-sharing-trigger' ), sharingInner = $scope.find( '.wpr-post-sharing-inner' ), sharingWidth = 5; // Calculate Width sharingInner.first().find( 'a' ).each(function() { sharingWidth += $(this).outerWidth() + parseInt( $(this).css('margin-right'), 10 ); }); // Calculate Margin var sharingMargin = parseInt( sharingInner.find( 'a' ).css('margin-right'), 10 ); // Set Positions if ( 'left' === sharingTrigger.attr( 'data-direction') ) { // Set Width sharingInner.css( 'width', sharingWidth +'px' ); // Set Position sharingInner.css( 'left', - ( sharingMargin + sharingWidth ) +'px' ); } else if ( 'right' === sharingTrigger.attr( 'data-direction') ) { // Set Width sharingInner.css( 'width', sharingWidth +'px' ); // Set Position sharingInner.css( 'right', - ( sharingMargin + sharingWidth ) +'px' ); } else if ( 'top' === sharingTrigger.attr( 'data-direction') ) { // Set Margins sharingInner.find( 'a' ).css({ 'margin-right' : '0', 'margin-top' : sharingMargin +'px' }); // Set Position sharingInner.css({ 'top' : -sharingMargin +'px', 'left' : '50%', '-webkit-transform' : 'translate(-50%, -100%)', 'transform' : 'translate(-50%, -100%)' }); } else if ( 'right' === sharingTrigger.attr( 'data-direction') ) { // Set Width sharingInner.css( 'width', sharingWidth +'px' ); // Set Position sharingInner.css({ 'left' : sharingMargin +'px', // 'bottom' : - ( sharingInner.outerHeight() + sharingTrigger.outerHeight() ) +'px', }); } else if ( 'bottom' === sharingTrigger.attr( 'data-direction') ) { // Set Margins sharingInner.find( 'a' ).css({ 'margin-right' : '0', 'margin-bottom' : sharingMargin +'px' }); // Set Position sharingInner.css({ 'bottom' : -sharingMargin +'px', 'left' : '50%', '-webkit-transform' : 'translate(-50%, 100%)', 'transform' : 'translate(-50%, 100%)' }); } if ( 'click' === sharingTrigger.attr( 'data-action' ) ) { sharingTrigger.on( 'click', function() { var sharingInner = $(this).next(); if ( 'hidden' === sharingInner.css( 'visibility' ) ) { sharingInner.css( 'visibility', 'visible' ); sharingInner.find( 'a' ).css({ 'opacity' : '1', 'top' : '0' }); setTimeout( function() { sharingInner.find( 'a' ).addClass( 'wpr-no-transition-delay' ); }, sharingInner.find( 'a' ).length * 100 ); } else { sharingInner.find( 'a' ).removeClass( 'wpr-no-transition-delay' ); sharingInner.find( 'a' ).css({ 'opacity' : '0', 'top' : '-5px' }); setTimeout( function() { sharingInner.css( 'visibility', 'hidden' ); }, sharingInner.find( 'a' ).length * 100 ); } }); } else { sharingTrigger.on( 'mouseenter', function() { var sharingInner = $(this).next(); sharingInner.css( 'visibility', 'visible' ); sharingInner.find( 'a' ).css({ 'opacity' : '1', 'top' : '0', }); setTimeout( function() { sharingInner.find( 'a' ).addClass( 'wpr-no-transition-delay' ); }, sharingInner.find( 'a' ).length * 100 ); }); $scope.find( '.wpr-grid-item-sharing' ).on( 'mouseleave', function() { var sharingInner = $(this).find( '.wpr-post-sharing-inner' ); sharingInner.find( 'a' ).removeClass( 'wpr-no-transition-delay' ); sharingInner.find( 'a' ).css({ 'opacity' : '0', 'top' : '-5px' }); setTimeout( function() { sharingInner.css( 'visibility', 'hidden' ); }, sharingInner.find( 'a' ).length * 100 ); }); } } } // Init Media Hover Link mediaHoverLink(); // Media Hover Link function mediaHoverLink() { if ( 'yes' === iGrid.find( '.wpr-grid-media-wrap' ).attr( 'data-overlay-link' ) && ! WprElements.editorCheck() ) { iGrid.find( '.wpr-grid-media-wrap' ).css('cursor', 'pointer'); iGrid.find( '.wpr-grid-media-wrap' ).on( 'click', function( event ) { var targetClass = event.target.className; if ( -1 !== targetClass.indexOf( 'inner-block' ) || -1 !== targetClass.indexOf( 'wpr-cv-inner' ) || -1 !== targetClass.indexOf( 'wpr-grid-media-hover' ) ) { event.preventDefault(); var itemUrl = $(this).find( '.wpr-grid-media-hover-bg' ).attr( 'data-url' ), itemUrl = itemUrl.replace('#new_tab', ''); if ( '_blank' === iGrid.find( '.wpr-grid-item-title a' ).attr('target') ) { window.open(itemUrl, '_blank').focus(); } else { window.location.href = itemUrl; } } }); } } // Init Lightbox if ( !$scope.hasClass('elementor-widget-wpr-woo-category-grid-pro') ) { lightboxPopup( settings ); } // Lightbox Popup function lightboxPopup( settings ) { if ( -1 === $scope.find( '.wpr-grid-item-lightbox' ).length ) { return; } var lightbox = $scope.find( '.wpr-grid-item-lightbox' ), lightboxOverlay = lightbox.find( '.wpr-grid-lightbox-overlay' ).first(); // Set Src Attributes lightbox.each(function() { var source = $(this).find('.inner-block > span').attr( 'data-src' ), gridItem = $(this).closest( 'article' ).not('.slick-cloned'); if ( ! iGrid.hasClass( 'wpr-media-grid' ) ) { gridItem.find( '.wpr-grid-image-wrap' ).attr( 'data-src', source ); } var dataSource = gridItem.find( '.wpr-grid-image-wrap' ).attr( 'data-src' ); if ( typeof dataSource !== typeof undefined && dataSource !== false ) { if ( -1 === dataSource.indexOf( 'wp-content' ) ) { gridItem.find( '.wpr-grid-image-wrap' ).attr( 'data-iframe', 'true' ); } } }); // Init Lightbox iGrid.lightGallery( settings.lightbox ); // Fix LightGallery Thumbnails iGrid.on('onAfterOpen.lg',function() { if ( $('.lg-outer').find('.lg-thumb-item').length ) { $('.lg-outer').find('.lg-thumb-item').each(function() { var imgSrc = $(this).find('img').attr('src'), newImgSrc = imgSrc, extIndex = imgSrc.lastIndexOf('.'), imgExt = imgSrc.slice(extIndex), cropIndex = imgSrc.lastIndexOf('-'), cropSize = /\d{3,}x\d{3,}/.test(imgSrc.substring(extIndex,cropIndex)) ? imgSrc.substring(extIndex,cropIndex) : false; if ( 42 <= imgSrc.substring(extIndex,cropIndex).length ) { cropSize = ''; } if ( cropSize !== '' ) { if ( false !== cropSize ) { newImgSrc = imgSrc.replace(cropSize, '-150x150'); } else { newImgSrc = [imgSrc.slice(0, extIndex), '-150x150', imgSrc.slice(extIndex)].join(''); } } // Change SRC $(this).find('img').attr('src', newImgSrc); }); } }); // Show/Hide Controls $scope.find( '.wpr-grid' ).on( 'onAferAppendSlide.lg, onAfterSlide.lg', function( event, prevIndex, index ) { var lightboxControls = $( '#lg-actual-size, #lg-zoom-in, #lg-zoom-out, #lg-download' ), lightboxDownload = $( '#lg-download' ).attr( 'href' ); if ( $( '#lg-download' ).length ) { if ( -1 === lightboxDownload.indexOf( 'wp-content' ) ) { lightboxControls.addClass( 'wpr-hidden-element' ); } else { lightboxControls.removeClass( 'wpr-hidden-element' ); } } // Autoplay Button if ( '' === settings.lightbox.autoplay ) { $( '.lg-autoplay-button' ).css({ 'width' : '0', 'height' : '0', 'overflow' : 'hidden' }); } }); // Overlay if ( lightboxOverlay.length ) { $scope.find( '.wpr-grid-media-hover-bg' ).after( lightboxOverlay.remove() ); $scope.find( '.wpr-grid-lightbox-overlay' ).on( 'click', function() { if ( ! WprElements.editorCheck() ) { $(this).closest( 'article' ).find( '.wpr-grid-image-wrap' ).trigger( 'click' ); } else { alert( 'Lightbox is Disabled in the Editor!' ); } }); } else { lightbox.find( '.inner-block > span' ).on( 'click', function() { if ( ! WprElements.editorCheck() ) { var imageWrap = $(this).closest( 'article' ).find( '.wpr-grid-image-wrap' ); imageWrap.trigger( 'click' ); } else { alert( 'Lightbox is Disabled in the Editor!' ); } }); } } // Init Likes postLikes( settings ); // Likes function postLikes( settings ) { if ( ! $scope.find( '.wpr-post-like-button' ).length ) { return; } $scope.find( '.wpr-post-like-button' ).on( 'click', function() { var current = $(this); if ( '' !== current.attr( 'data-post-id' ) ) { $.ajax({ type: 'POST', url: current.attr( 'data-ajax' ), data: { action : 'wpr_likes_init', post_id : current.attr( 'data-post-id' ), nonce : current.attr( 'data-nonce' ) }, beforeSend:function() { current.fadeTo( 500, 0.5 ); }, success: function( response ) { // Get Icon var iconClass = current.attr( 'data-icon' ); // Get Count var countHTML = response.count; if ( '' === countHTML.replace(/<\/?[^>]+(>|$)/g, "") ) { countHTML = ''+ current.attr( 'data-text' ) +''; if ( ! current.hasClass( 'wpr-likes-zero' ) ) { current.addClass( 'wpr-likes-zero' ); } } else { current.removeClass( 'wpr-likes-zero' ); } // Update Icon if ( current.hasClass( 'wpr-already-liked' ) ) { current.prop( 'title', 'Like' ); current.removeClass( 'wpr-already-liked' ); current.html( '' + countHTML ); } else { current.prop( 'title', 'Unlike' ); current.addClass( 'wpr-already-liked' ); current.html( '' + countHTML ); } current.fadeTo( 500, 1 ); } }); } return false; }); } // Isotope Layout function isotopeLayout( settings ) { var grid = $scope.find( '.wpr-grid' ), item = grid.find( '.wpr-grid-item' ), itemVisible = item.filter( ':visible' ), layout = settings.layout, mediaAlign = settings.media_align, mediaWidth = settings.media_width, mediaDistance = settings.media_distance, columns = 3, columnsMobile = 1, columnsMobileExtra, columnsTablet = 2, columnsTabletExtra, columnsDesktop = parseInt(settings.columns_desktop, 10), columnsLaptop, columnsWideScreen, gutterHr = settings.gutter_hr, gutterVr = settings.gutter_vr, contWidth = grid.width() + gutterHr - 0.3, viewportWidth = $( 'body' ).prop( 'clientWidth' ), transDuration = 400; // Get Responsive Columns var prefixClass = $scope.attr('class'), prefixClass = prefixClass.split(' '); for ( var i=0; i < prefixClass.length - 1; i++ ) { if ( -1 !== prefixClass[i].search(/mobile\d/) ) { columnsMobile = prefixClass[i].slice(-1); } if ( -1 !== prefixClass[i].search(/mobile_extra\d/) ) { columnsMobileExtra = prefixClass[i].slice(-1); } if ( -1 !== prefixClass[i].search(/tablet\d/) ) { columnsTablet = prefixClass[i].slice(-1); } if ( -1 !== prefixClass[i].search(/tablet_extra\d/) ) { columnsTabletExtra = prefixClass[i].slice(-1); } if ( -1 !== prefixClass[i].search(/widescreen\d/) ) { columnsWideScreen = prefixClass[i].slice(-1); } if ( -1 !== prefixClass[i].search(/laptop\d/) ) { columnsLaptop = prefixClass[i].slice(-1); } } // Mobile if ( 440 >= viewportWidth ) { columns = columnsMobile; // Mobile Extra } else if ( 768 >= viewportWidth ) { columns = (columnsMobileExtra) ? columnsMobileExtra : columnsTablet; // Tablet } else if ( 881 >= viewportWidth ) { columns = columnsTablet; // Tablet Extra } else if ( 1025 >= viewportWidth ) { columns = (columnsTabletExtra) ? columnsTabletExtra : columnsTablet; // Laptop } else if ( 1201 >= viewportWidth ) { columns = (columnsLaptop) ? columnsLaptop : columnsDesktop; // Desktop } else if ( 1920 >= viewportWidth ) { columns = columnsDesktop; // Larger Screens } else if ( 2300 >= viewportWidth ) { columns = columnsDesktop; } else if ( 2650 >= viewportWidth ) { columns = (columnsWideScreen) ? columnsWideScreen : columnsDesktop; } else if ( 3000 >= viewportWidth ) { columns = (columnsWideScreen) ? columnsWideScreen : columnsDesktop; } else { columns = (columnsWideScreen) ? columnsWideScreen : columnsDesktop; } // Limit Columns for Higher Screens if ( columns > 8 ) { columns = 8; } if ( 'string' == typeof(columns) && -1 !== columns.indexOf('pro') ) { columns = 3; } // Calculate Item Width item.outerWidth( Math.floor( contWidth / columns - gutterHr ) ); // Set Vertical Gutter item.css( 'margin-bottom', gutterVr +'px' ); // Reset Vertical Gutter for 1 Column Layout if ( 1 === columns ) { item.last().css( 'margin-bottom', '0' ); } // add last row & make all post equal height var maxTop = -1; itemVisible.each(function ( index ) { // define var thisHieght = $(this).outerHeight(), thisTop = parseInt( $(this).css( 'top' ) , 10 ); // determine last row if ( thisTop > maxTop ) { maxTop = thisTop; } }); if ( 'fitRows' === layout ) { itemVisible.each(function() { if ( parseInt( $(this).css( 'top' ) ) === maxTop ) { $(this).addClass( 'rf-last-row' ); } }); } // List Layout if ( 'list' === layout ) { var imageHeight = item.find( '.wpr-grid-image-wrap' ).outerHeight(); item.find( '.wpr-grid-item-below-content' ).css( 'min-height', imageHeight +'px' ); if ( $( 'body' ).prop( 'clientWidth' ) < 480 ) { item.find( '.wpr-grid-media-wrap' ).css({ 'float' : 'none', 'width' : '100%' }); item.find( '.wpr-grid-item-below-content' ).css({ 'float' : 'none', 'width' : '100%', }); item.find( '.wpr-grid-image-wrap' ).css( 'padding', '0' ); item.find( '.wpr-grid-item-below-content' ).css( 'min-height', '0' ); if ( 'zigzag' === mediaAlign ) { item.find( '[class*="elementor-repeater-item"]' ).css( 'text-align', 'center' ); } } else { if ( 'zigzag' !== mediaAlign ) { item.find( '.wpr-grid-media-wrap' ).css({ 'float' : mediaAlign, 'width' : mediaWidth +'%' }); var listGutter = 'left' === mediaAlign ? 'margin-right' : 'margin-left'; item.find( '.wpr-grid-media-wrap' ).css( listGutter, mediaDistance +'px' ); item.find( '.wpr-grid-item-below-content' ).css({ 'float' : mediaAlign, 'width' : 'calc((100% - '+ mediaWidth +'%) - '+ mediaDistance +'px)', }); // Zig-zag } else { // Even item.filter(':even').find( '.wpr-grid-media-wrap' ).css({ 'float' : 'left', 'width' : mediaWidth +'%' }); item.filter(':even').find( '.wpr-grid-item-below-content' ).css({ 'float' : 'left', 'width' : 'calc((100% - '+ mediaWidth +'%) - '+ mediaDistance +'px)', }); item.filter(':even').find( '.wpr-grid-media-wrap' ).css( 'margin-right', mediaDistance +'px' ); // Odd item.filter(':odd').find( '.wpr-grid-media-wrap' ).css({ 'float' : 'right', 'width' : mediaWidth +'%' }); item.filter(':odd').find( '.wpr-grid-item-below-content' ).css({ 'float' : 'right', 'width' : 'calc((100% - '+ mediaWidth +'%) - '+ mediaDistance +'px)', }); item.filter(':odd').find( '.wpr-grid-media-wrap' ).css( 'margin-left', mediaDistance +'px' ); // Fix Elements Align if ( ! grid.hasClass( 'wpr-grid-list-ready' ) ) { item.each( function( index ) { var element = $(this).find( '[class*="elementor-repeater-item"]' ); if ( index % 2 === 0 ) { element.each(function() { if ( ! $(this).hasClass( 'wpr-grid-item-align-center' ) ) { if ( 'none' === $(this).css( 'float' ) ) { $(this).css( 'text-align', 'left' ); } else { $(this).css( 'float', 'left' ); } var inner = $(this).find( '.inner-block' ); } }); } else { element.each(function( index ) { if ( ! $(this).hasClass( 'wpr-grid-item-align-center' ) ) { if ( 'none' === $(this).css( 'float' ) ) { $(this).css( 'text-align', 'right' ); } else { $(this).css( 'float', 'right' ); } var inner = $(this).find( '.inner-block' ); if ( '0px' !== inner.css( 'margin-left' ) ) { inner.css( 'margin-right', inner.css( 'margin-left' ) ); inner.css( 'margin-left', '0' ); } // First Item if ( 0 === index ) { if ( '0px' !== inner.css( 'margin-right' ) ) { inner.css( 'margin-left', inner.css( 'margin-right' ) ); inner.css( 'margin-right', '0' ); } } } }); } }); } setTimeout(function() { if ( ! grid.hasClass( 'wpr-grid-list-ready' ) ) { grid.addClass( 'wpr-grid-list-ready' ); } }, 500 ); } } } // Set Layout if ( 'list' === layout ) { layout = 'fitRows'; } // No Transition if ( 'default' !== settings.filters_animation ) { transDuration = 0; } // Run Isotope var iGrid = grid.isotope({ layoutMode: layout, masonry: { comlumnWidth: contWidth / columns, gutter: gutterHr }, fitRows: { comlumnWidth: contWidth / columns, gutter: gutterHr }, transitionDuration: transDuration, percentPosition: true }); // return iGrid;//tmp } // Isotope Filters function isotopeFilters( settings ) { // Count if ( 'yes' === settings.filters_count ) { $scope.find( '.wpr-grid-filters a, .wpr-grid-filters span' ).each(function() { if ( '*' === $(this).attr( 'data-filter') ) { $(this).find( 'sup' ).text( $scope.find( '.wpr-grid-filters' ).next().find('article').length ); } else { $(this).find( 'sup' ).text( $scope.find( $(this).attr( 'data-filter' ) ).length ); } }); } // Return if Disabled if ( 'yes' === settings.filters_linkable ) { return; } // Deeplinking on Load if ( 'yes' === settings.deeplinking ) { var deepLink = window.location.hash.replace( '#filter:', '.' ); if ( window.location.hash.match( '#filter:all' ) ) { deepLink = '*'; } var activeFilter = $scope.find( '.wpr-grid-filters span[data-filter="'+ deepLink +'"]:not(.wpr-back-filter)' ), activeFilterWrap = activeFilter.parent(); // Sub Filters if ( 'parent' === activeFilter.parent().attr( 'data-role' ) ) { if ( activeFilterWrap.parent( 'ul' ).find( 'ul[data-parent="'+ deepLink +'"]').length ) { activeFilterWrap.parent( 'ul' ).children( 'li' ).css( 'display', 'none' ); activeFilterWrap.siblings( 'ul[data-parent="'+ deepLink +'"]' ).css( 'display', 'block' ); } } else if ( 'sub' === activeFilter.parent().attr( 'data-role' ) ) { activeFilterWrap.closest( '.wpr-grid-filters' ).children( 'li' ).css( 'display', 'none' ); activeFilterWrap.parent( 'ul' ).css( 'display', 'inline-block' ); } // Active Filter Class $scope.find( '.wpr-grid-filters span' ).removeClass( 'wpr-active-filter' ); activeFilter.addClass( 'wpr-active-filter' ); $scope.find( '.wpr-grid' ).isotope({ filter: deepLink }); // Fix Lightbox if ( '*' !== deepLink ) { settings.lightbox.selector = deepLink +' .wpr-grid-image-wrap'; } else { settings.lightbox.selector = ' .wpr-grid-image-wrap'; } lightboxPopup( settings ); } // Hide Empty Filters if ( 'yes' === settings.filters_hide_empty ) { $scope.find( '.wpr-grid-filters span' ).each(function() { var searchClass = $(this).attr( 'data-filter' ); if ( '*' !== searchClass ) { if ( 0 === iGrid.find(searchClass).length ) { $(this).parent( 'li' ).addClass( 'wpr-hidden-element' ); } else { $(this).parent( 'li' ).removeClass( 'wpr-hidden-element' ); } } }); } // Set a Default Filter if ( !$scope.hasClass('elementor-widget-wpr-woo-category-grid-pro') ) { if ( '' !== settings.filters_default_filter ) { setTimeout(function() { $scope.find( '.wpr-grid-filters' ).find('span[data-filter*="-'+ settings.filters_default_filter +'"]')[0].click(); }, 100) } } // Click Event $scope.find( '.wpr-grid-filters span' ).on( 'click', function() { initialItems = 0; var filterClass = $(this).data( 'filter' ), filterWrap = $(this).parent( 'li' ), filterRole = filterWrap.attr( 'data-role' ); // Active Filter Class $scope.find( '.wpr-grid-filters span' ).removeClass( 'wpr-active-filter' ); $(this).addClass( 'wpr-active-filter' ); // Sub Filters if ( 'parent' === filterRole ) { if ( filterWrap.parent( 'ul' ).find( 'ul[data-parent="'+ filterClass +'"]').length ) { filterWrap.parent( 'ul' ).children( 'li' ).css( 'display', 'none' ); filterWrap.siblings( 'ul[data-parent="'+ filterClass +'"]' ).css( 'display', 'block' ); } } else if ( 'back' === filterRole ) { filterWrap.closest( '.wpr-grid-filters' ).children( 'li' ).css( 'display', 'inline-block' ); filterWrap.parent().css( 'display', 'none' ); } // Deeplinking if ( 'yes' === settings.deeplinking ) { var filterHash = '#filter:'+ filterClass.replace( '.', '' ); if ( '*' === filterClass ) { filterHash = '#filter:all'; } window.location.href = window.location.pathname + window.location.search + filterHash; } // Infinite Scroll if ( 'infinite-scroll' === settings.pagination_type ) { if ( 0 === iGrid.find($(this).attr('data-filter')).length ) { $scope.find( '.wpr-grid' ).infiniteScroll( 'loadNextPage' ); } } // Load More if ( 'load-more' === settings.pagination_type ) { if ( 0 === iGrid.find($(this).attr('data-filter')).length ) { $scope.find( '.wpr-grid' ).infiniteScroll( 'loadNextPage' ); } } // Filtering Animation if ( 'default' !== settings.filters_animation ) { $scope.find( '.wpr-grid-item-inner' ).css({ 'opacity' : '0', 'transition' : 'none' }); } if ( 'fade-slide' === settings.filters_animation ) { $scope.find( '.wpr-grid-item-inner' ).css( 'top', '20px' ); } else if ( 'zoom' === settings.filters_animation ) { $scope.find( '.wpr-grid-item-inner' ).css( 'transform', 'scale(0.01)' ); } else { $scope.find( '.wpr-grid-item-inner' ).css({ 'top' : '0', 'transform' : 'scale(1)' }); } // Filter Grid Items $scope.find( '.wpr-grid' ).isotope({ filter: filterClass }); // Fix Lightbox if ( '*' !== filterClass ) { settings.lightbox.selector = filterClass +' .wpr-grid-image-wrap'; } else { settings.lightbox.selector = ' .wpr-grid-image-wrap'; } // Destroy Lightbox iGrid.data('lightGallery').destroy( true ); // Init Lightbox iGrid.lightGallery( settings.lightbox ); }); } }, // End widgetGrid widgetMagazineGrid: function( $scope ) { // Settings var iGrid = $scope.find( '.wpr-magazine-grid-wrap' ), settings = iGrid.attr( 'data-slick' ), dataSlideEffect = iGrid.attr('data-slide-effect'); // Slider if ( typeof settings !== typeof undefined && settings !== false ) { iGrid.slick({ fade: 'fade' === dataSlideEffect ? true : false }); } // Media Hover Link if ( 'yes' === iGrid.find( '.wpr-grid-media-wrap' ).attr( 'data-overlay-link' ) && ! WprElements.editorCheck() ) { iGrid.find( '.wpr-grid-media-wrap' ).css('cursor', 'pointer'); iGrid.find( '.wpr-grid-media-wrap' ).on( 'click', function( event ) { var targetClass = event.target.className; if ( -1 !== targetClass.indexOf( 'inner-block' ) || -1 !== targetClass.indexOf( 'wpr-cv-inner' ) || -1 !== targetClass.indexOf( 'wpr-grid-media-hover' ) ) { event.preventDefault(); window.location.href = $(this).find( '.wpr-grid-media-hover-bg' ).attr( 'data-url' ); } }); } // Sharing if ( $scope.find( '.wpr-sharing-trigger' ).length ) { var sharingTrigger = $scope.find( '.wpr-sharing-trigger' ), sharingInner = $scope.find( '.wpr-post-sharing-inner' ), sharingWidth = 5; // Calculate Width sharingInner.first().find( 'a' ).each(function() { sharingWidth += $(this).outerWidth() + parseInt( $(this).css('margin-right'), 10 ); }); // Calculate Margin var sharingMargin = parseInt( sharingInner.find( 'a' ).css('margin-right'), 10 ); // Set Positions if ( 'left' === sharingTrigger.attr( 'data-direction') ) { // Set Width sharingInner.css( 'width', sharingWidth +'px' ); // Set Position sharingInner.css( 'left', - ( sharingMargin + sharingWidth ) +'px' ); } else if ( 'right' === sharingTrigger.attr( 'data-direction') ) { // Set Width sharingInner.css( 'width', sharingWidth +'px' ); // Set Position sharingInner.css( 'right', - ( sharingMargin + sharingWidth ) +'px' ); } else if ( 'top' === sharingTrigger.attr( 'data-direction') ) { // Set Margins sharingInner.find( 'a' ).css({ 'margin-right' : '0', 'margin-top' : sharingMargin +'px' }); // Set Position sharingInner.css({ 'top' : -sharingMargin +'px', 'left' : '50%', '-webkit-transform' : 'translate(-50%, -100%)', 'transform' : 'translate(-50%, -100%)' }); } else if ( 'right' === sharingTrigger.attr( 'data-direction') ) { // Set Width sharingInner.css( 'width', sharingWidth +'px' ); // Set Position sharingInner.css({ 'left' : sharingMargin +'px', // 'bottom' : - ( sharingInner.outerHeight() + sharingTrigger.outerHeight() ) +'px', }); } else if ( 'bottom' === sharingTrigger.attr( 'data-direction') ) { // Set Margins sharingInner.find( 'a' ).css({ 'margin-right' : '0', 'margin-bottom' : sharingMargin +'px' }); // Set Position sharingInner.css({ 'bottom' : -sharingMargin +'px', 'left' : '50%', '-webkit-transform' : 'translate(-50%, 100%)', 'transform' : 'translate(-50%, 100%)' }); } if ( 'click' === sharingTrigger.attr( 'data-action' ) ) { sharingTrigger.on( 'click', function() { var sharingInner = $(this).next(); if ( 'hidden' === sharingInner.css( 'visibility' ) ) { sharingInner.css( 'visibility', 'visible' ); sharingInner.find( 'a' ).css({ 'opacity' : '1', 'top' : '0' }); setTimeout( function() { sharingInner.find( 'a' ).addClass( 'wpr-no-transition-delay' ); }, sharingInner.find( 'a' ).length * 100 ); } else { sharingInner.find( 'a' ).removeClass( 'wpr-no-transition-delay' ); sharingInner.find( 'a' ).css({ 'opacity' : '0', 'top' : '-5px' }); setTimeout( function() { sharingInner.css( 'visibility', 'hidden' ); }, sharingInner.find( 'a' ).length * 100 ); } }); } else { sharingTrigger.on( 'mouseenter', function() { var sharingInner = $(this).next(); sharingInner.css( 'visibility', 'visible' ); sharingInner.find( 'a' ).css({ 'opacity' : '1', 'top' : '0', }); setTimeout( function() { sharingInner.find( 'a' ).addClass( 'wpr-no-transition-delay' ); }, sharingInner.find( 'a' ).length * 100 ); }); $scope.find( '.wpr-grid-item-sharing' ).on( 'mouseleave', function() { var sharingInner = $(this).find( '.wpr-post-sharing-inner' ); sharingInner.find( 'a' ).removeClass( 'wpr-no-transition-delay' ); sharingInner.find( 'a' ).css({ 'opacity' : '0', 'top' : '-5px' }); setTimeout( function() { sharingInner.css( 'visibility', 'hidden' ); }, sharingInner.find( 'a' ).length * 100 ); }); } } // Likes if ( $scope.find( '.wpr-post-like-button' ).length ) { $scope.find( '.wpr-post-like-button' ).on( 'click', function() { var current = $(this); if ( '' !== current.attr( 'data-post-id' ) ) { $.ajax({ type: 'POST', url: current.attr( 'data-ajax' ), data: { action : 'wpr_likes_init', post_id : current.attr( 'data-post-id' ), nonce : current.attr( 'data-nonce' ) }, beforeSend:function() { current.fadeTo( 500, 0.5 ); }, success: function( response ) { // Get Icon var iconClass = current.attr( 'data-icon' ); // Get Count var countHTML = response.count; if ( '' === countHTML.replace(/<\/?[^>]+(>|$)/g, "") ) { countHTML = ''+ current.attr( 'data-text' ) +''; if ( ! current.hasClass( 'wpr-likes-zero' ) ) { current.addClass( 'wpr-likes-zero' ); } } else { current.removeClass( 'wpr-likes-zero' ); } // Update Icon if ( current.hasClass( 'wpr-already-liked' ) ) { current.prop( 'title', 'Like' ); current.removeClass( 'wpr-already-liked' ); current.html( '' + countHTML ); } else { current.prop( 'title', 'Unlike' ); current.addClass( 'wpr-already-liked' ); current.html( '' + countHTML ); } current.fadeTo( 500, 1 ); } }); } return false; }); } }, // End widgetMagazineGrid widgetFeaturedMedia: function( $scope ) { var gallery = $scope.find( '.wpr-gallery-slider' ), gallerySettings = gallery.attr( 'data-slick' ); gallery.animate({ 'opacity' : '1' }, 1000 ); if ( '[]' !== gallerySettings ) { gallery.slick({ appendDots : $scope.find( '.wpr-gallery-slider-dots' ), customPaging : function ( slider, i ) { var slideNumber = (i + 1), totalSlides = slider.slideCount; return ''; } }); } // Lightbox var lightboxSettings = $( '.wpr-featured-media-image' ).attr( 'data-lightbox' ); if ( typeof lightboxSettings !== typeof undefined && lightboxSettings !== false && ! WprElements.editorCheck() ) { var MediaWrap = $scope.find( '.wpr-featured-media-wrap' ); lightboxSettings = JSON.parse( lightboxSettings ); // Init Lightbox MediaWrap.lightGallery( lightboxSettings ); // Show/Hide Controls MediaWrap.on( 'onAferAppendSlide.lg, onAfterSlide.lg', function( event, prevIndex, index ) { var lightboxControls = $( '#lg-actual-size, #lg-zoom-in, #lg-zoom-out, #lg-download' ), lightboxDownload = $( '#lg-download' ).attr( 'href' ); if ( $( '#lg-download' ).length ) { if ( -1 === lightboxDownload.indexOf( 'wp-content' ) ) { lightboxControls.addClass( 'wpr-hidden-element' ); } else { lightboxControls.removeClass( 'wpr-hidden-element' ); } } // Autoplay Button if ( '' === lightboxSettings.autoplay ) { $( '.lg-autoplay-button' ).css({ 'width' : '0', 'height' : '0', 'overflow' : 'hidden' }); } }); } }, // End widgetFeaturedMedia widgetProductMedia: function( $scope ) { if ( $scope.find('.wpr-gallery-slider-arrows-wrap') ) { var sliderIcons = $scope.find('.wpr-gallery-slider-arrows-wrap'); sliderIcons.remove(); $scope.find('.flex-viewport').append(sliderIcons); $scope.find('.wpr-gallery-slider-arrow').on('click', function() { if ($(this).hasClass('wpr-gallery-slider-prev-arrow')) { $scope.find('a.flex-prev').trigger('click'); } else if ($(this).hasClass('wpr-gallery-slider-next-arrow')) { $scope.find('a.flex-next').trigger('click'); } }); } }, // End widgetProductMedia widgetCountDown: function( $scope ) { var countDownWrap = $scope.children( '.elementor-widget-container' ).children( '.wpr-countdown-wrap' ), countDownInterval = null, dataInterval = countDownWrap.data( 'interval' ), dataShowAgain = countDownWrap.data( 'show-again' ), endTime = new Date( dataInterval * 1000); // Evergreen End Time if ( 'evergreen' === countDownWrap.data( 'type' ) ) { var evergreenDate = new Date(), widgetID = $scope.attr( 'data-id' ), settings = JSON.parse( localStorage.getItem( 'WprCountDownSettings') ) || {}; // End Time if ( settings.hasOwnProperty( widgetID ) ) { if ( Object.keys(settings).length === 0 || dataInterval !== settings[widgetID].interval ) { endTime = evergreenDate.setSeconds( evergreenDate.getSeconds() + dataInterval ); } else { endTime = settings[widgetID].endTime; } } else { endTime = evergreenDate.setSeconds( evergreenDate.getSeconds() + dataInterval ); } if ( endTime + dataShowAgain < evergreenDate.setSeconds( evergreenDate.getSeconds() ) ) { endTime = evergreenDate.setSeconds( evergreenDate.getSeconds() + dataInterval ); } // Settings settings[widgetID] = { interval: dataInterval, endTime: endTime }; // Save Settings in Browser localStorage.setItem( 'WprCountDownSettings', JSON.stringify( settings ) ); } // Init on Load initCountDown(); // Start CountDown if ( ! WprElements.editorCheck() ) { //tmp countDownInterval = setInterval( initCountDown, 1000 ); } function initCountDown() { var timeLeft = endTime - new Date(); var numbers = { days: Math.floor(timeLeft / (1000 * 60 * 60 * 24)), hours: Math.floor(timeLeft / (1000 * 60 * 60) % 24), minutes: Math.floor(timeLeft / 1000 / 60 % 60), seconds: Math.floor(timeLeft / 1000 % 60) }; if ( numbers.days < 0 || numbers.hours < 0 || numbers.minutes < 0 ) { numbers = { days: 0, hours: 0, minutes: 0, seconds: 0 }; } $scope.find( '.wpr-countdown-number' ).each(function() { var number = numbers[ $(this).attr( 'data-item' ) ]; if ( 1 === number.toString().length ) { number = '0' + number; } $(this).text( number ); // Labels var labels = $(this).next(); if ( labels.length ) { if ( ! $(this).hasClass( 'wpr-countdown-seconds' ) ) { var labelText = labels.data( 'text' ); if ( '01' == number ) { labels.text( labelText.singular ); } else { labels.text( labelText.plural ); } } } }); // Stop Counting if ( timeLeft < 0 ) { clearInterval( countDownInterval ); // Actions expiredActions(); } } function expiredActions() { var dataActions = countDownWrap.data( 'actions' ); if ( ! WprElements.editorCheck() ) { if ( dataActions.hasOwnProperty( 'hide-timer' ) ) { countDownWrap.hide(); } if ( dataActions.hasOwnProperty( 'hide-element' ) ) { $( dataActions['hide-element'] ).hide(); } if ( dataActions.hasOwnProperty( 'message' ) ) { if ( ! $scope.children( '.elementor-widget-container' ).children( '.wpr-countdown-message' ).length ) { countDownWrap.after( '
'+ dataActions['message'] +'
' ); } } if ( dataActions.hasOwnProperty( 'redirect' ) ) { window.location.href = dataActions['redirect']; } if ( dataActions.hasOwnProperty( 'load-template' ) ) { countDownWrap.parent().find( '.elementor-inner' ).parent().show(); } } } }, // End widgetCountDown widgetGoogleMaps: function( $scope ) { var googleMap = $scope.find( '.wpr-google-map' ), settings = googleMap.data( 'settings' ), controls = googleMap.data( 'controls' ), locations = googleMap.data( 'locations' ), gMarkers = [], bounds = new google.maps.LatLngBounds(); // Create Map var map = new google.maps.Map( googleMap[0], { mapTypeId: settings.type, styles: get_map_style( settings ), zoom: settings.zoom_depth, gestureHandling: settings.zoom_on_scroll, // UI mapTypeControl: controls.type, fullscreenControl: controls.fullscreen, zoomControl: controls.zoom, streetViewControl: controls.streetview, } ); // Set Markers for ( var i = 0; i < locations.length; i++ ) { var data = locations[i], iconOptions = '', iconSizeW = data.gm_marker_icon_size_width.size, iconSizeH = data.gm_marker_icon_size_height.size; // Empty Values if ( '' == data.gm_latitude || '' == data.gm_longtitude ) { continue; } // Custom Icon if ( 'yes' === data.gm_custom_marker ) { iconOptions = { url: data.gm_marker_icon.url, scaledSize: new google.maps.Size( iconSizeW, iconSizeH ), }; } // Marker var marker = new google.maps.Marker({ map: map, position: new google.maps.LatLng( parseFloat( data.gm_latitude ), parseFloat( data.gm_longtitude ) ), animation: google.maps.Animation[data.gm_marker_animation], icon: iconOptions }); // Info Window if ( 'none' !== data.gm_show_info_window ) { infoWindow( marker, data ); } gMarkers.push(marker); bounds.extend(marker.position); } // Center Map if ( locations.length > 1 ) { map.fitBounds(bounds); } else { map.setCenter( bounds.getCenter() ); } // Marker Clusters if ( 'yes' === settings.cluster_markers ) { var markerCluster = new MarkerClusterer(map, gMarkers, { imagePath: settings.clusters_url }); } // Info Wondow function infoWindow( marker, data ) { var content = '

'+ data.gm_location_title +'

'+ data.gm_location_description +'

', iWindow = new google.maps.InfoWindow({ content: content, maxWidth: data.gm_info_window_width.size }); if ( 'load' === data.gm_show_info_window ) { iWindow.open( map, marker ); } else { marker.addListener( 'click', function() { iWindow.open( map, marker ); }); } } // Map Styles function get_map_style( settings ) { var style; switch ( settings.style ) { case 'simple': style = JSON.parse('[{"featureType":"road","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#fffffa"}]},{"featureType":"water","stylers":[{"lightness":50}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"transit","stylers":[{"visibility":"off"}]},{"featureType":"administrative","elementType":"geometry","stylers":[{"lightness":40}]}]'); break; case 'white-black': style = JSON.parse('[{"featureType":"road","elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"administrative","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"weight":1}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"weight":0.8}]},{"featureType":"landscape","stylers":[{"color":"#ffffff"}]},{"featureType":"water","stylers":[{"visibility":"off"}]},{"featureType":"transit","stylers":[{"visibility":"off"}]},{"elementType":"labels","stylers":[{"visibility":"off"}]},{"elementType":"labels.text","stylers":[{"visibility":"on"}]},{"elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"elementType":"labels.text.fill","stylers":[{"color":"#000000"}]},{"elementType":"labels.icon","stylers":[{"visibility":"on"}]}]'); break; case 'light-silver': style = JSON.parse('[{"featureType":"water","elementType":"geometry","stylers":[{"color":"#e9e9e9"},{"lightness":17}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#ffffff"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":16}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":21}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#dedede"},{"lightness":21}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#ffffff"},{"lightness":16}]},{"elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#333333"},{"lightness":40}]},{"elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#f2f2f2"},{"lightness":19}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#fefefe"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#fefefe"},{"lightness":17},{"weight":1.2}]}]'); break; case 'light-grayscale': style = JSON.parse('[{"featureType":"all","elementType":"geometry.fill","stylers":[{"weight":"2.00"}]},{"featureType":"all","elementType":"geometry.stroke","stylers":[{"color":"#9c9c9c"}]},{"featureType":"all","elementType":"labels.text","stylers":[{"visibility":"on"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"landscape","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"landscape.man_made","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"color":"#eeeeee"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#7b7b7b"}]},{"featureType":"road","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#46bcec"},{"visibility":"on"}]},{"featureType":"water","elementType":"geometry.fill","stylers":[{"color":"#c8d7d4"}]},{"featureType":"water","elementType":"labels.text.fill","stylers":[{"color":"#070707"}]},{"featureType":"water","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]}]'); break; case 'subtle-grayscale': style = JSON.parse('[{"featureType":"administrative","elementType":"all","stylers":[{"saturation":"-100"}]},{"featureType":"administrative.province","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"saturation":-100},{"lightness":65},{"visibility":"on"}]},{"featureType":"poi","elementType":"all","stylers":[{"saturation":-100},{"lightness":"50"},{"visibility":"simplified"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":"-100"}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"all","stylers":[{"lightness":"30"}]},{"featureType":"road.local","elementType":"all","stylers":[{"lightness":"40"}]},{"featureType":"transit","elementType":"all","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"water","elementType":"geometry","stylers":[{"hue":"#ffff00"},{"lightness":-25},{"saturation":-97}]},{"featureType":"water","elementType":"labels","stylers":[{"lightness":-25},{"saturation":-100}]}]'); break; case 'mostly-white': style = JSON.parse('[{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#6195a0"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"landscape","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi.park","elementType":"geometry.fill","stylers":[{"color":"#e6f3d6"},{"visibility":"on"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45},{"visibility":"simplified"}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#f4d2c5"},{"visibility":"simplified"}]},{"featureType":"road.highway","elementType":"labels.text","stylers":[{"color":"#4e4e4e"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#f4f4f4"}]},{"featureType":"road.arterial","elementType":"labels.text.fill","stylers":[{"color":"#787878"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#eaf6f8"},{"visibility":"on"}]},{"featureType":"water","elementType":"geometry.fill","stylers":[{"color":"#eaf6f8"}]}]'); break; case 'mostly-green': style = JSON.parse('[{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"color":"#f7f1df"}]},{"featureType":"landscape.natural","elementType":"geometry","stylers":[{"color":"#d0e3b4"}]},{"featureType":"landscape.natural.terrain","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"poi.business","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi.medical","elementType":"geometry","stylers":[{"color":"#fbd3da"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#bde6ab"}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffe15f"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#efd151"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.local","elementType":"geometry.fill","stylers":[{"color":"black"}]},{"featureType":"transit.station.airport","elementType":"geometry.fill","stylers":[{"color":"#cfb2db"}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#a2daf2"}]}]'); break; case 'neutral-blue': style = JSON.parse('[{"featureType":"water","elementType":"geometry","stylers":[{"color":"#193341"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#2c5a71"}]},{"featureType":"road","elementType":"geometry","stylers":[{"color":"#29768a"},{"lightness":-37}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#406d80"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#406d80"}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#3e606f"},{"weight":2},{"gamma":0.84}]},{"elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"administrative","elementType":"geometry","stylers":[{"weight":0.6},{"color":"#1a3541"}]},{"elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#2c5a71"}]}]'); break; case 'blue-water': style = JSON.parse('[{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#444444"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#46bcec"},{"visibility":"on"}]}]'); break; case 'blue-essense': style = JSON.parse('[{"featureType":"landscape.natural","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#e0efef"}]},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"hue":"#1900ff"},{"color":"#c0e8e8"}]},{"featureType":"road","elementType":"geometry","stylers":[{"lightness":100},{"visibility":"simplified"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"transit.line","elementType":"geometry","stylers":[{"visibility":"on"},{"lightness":700}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#7dcdcd"}]}]'); break; case 'golden-brown': style = JSON.parse('[{"featureType":"all","elementType":"all","stylers":[{"color":"#ff7000"},{"lightness":"69"},{"saturation":"100"},{"weight":"1.17"},{"gamma":"2.04"}]},{"featureType":"all","elementType":"geometry","stylers":[{"color":"#cb8536"}]},{"featureType":"all","elementType":"labels","stylers":[{"color":"#ffb471"},{"lightness":"66"},{"saturation":"100"}]},{"featureType":"all","elementType":"labels.text.fill","stylers":[{"gamma":0.01},{"lightness":20}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"saturation":-31},{"lightness":-33},{"weight":2},{"gamma":0.8}]},{"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"lightness":"-8"},{"gamma":"0.98"},{"weight":"2.45"},{"saturation":"26"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"lightness":30},{"saturation":30}]},{"featureType":"poi","elementType":"geometry","stylers":[{"saturation":20}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"lightness":20},{"saturation":-20}]},{"featureType":"road","elementType":"geometry","stylers":[{"lightness":10},{"saturation":-30}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"saturation":25},{"lightness":25}]},{"featureType":"water","elementType":"all","stylers":[{"lightness":-20},{"color":"#ecc080"}]}]'); break; case 'midnight-commander': style = JSON.parse('[{"featureType":"all","elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"color":"#000000"},{"lightness":13}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#144b53"},{"lightness":14},{"weight":1.4}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#08304b"}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#0c4152"},{"lightness":5}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#0b434f"},{"lightness":25}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"road.arterial","elementType":"geometry.stroke","stylers":[{"color":"#0b3d51"},{"lightness":16}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"}]},{"featureType":"transit","elementType":"all","stylers":[{"color":"#146474"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#021019"}]}]'); break; case 'shades-of-grey': style = JSON.parse('[{"featureType":"all","elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#000000"},{"lightness":40}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#000000"},{"lightness":16}]},{"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":17},{"weight":1.2}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":21}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":16}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":19}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":17}]}]'); break; case 'yellow-black': style = JSON.parse('[{"featureType":"all","elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"all","elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#000000"},{"lightness":40}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#000000"},{"lightness":16}]},{"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":17},{"weight":1.2}]},{"featureType":"administrative.country","elementType":"labels.text.fill","stylers":[{"color":"#e5c163"}]},{"featureType":"administrative.locality","elementType":"labels.text.fill","stylers":[{"color":"#c4c4c4"}]},{"featureType":"administrative.neighborhood","elementType":"labels.text.fill","stylers":[{"color":"#e5c163"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":21},{"visibility":"on"}]},{"featureType":"poi.business","elementType":"geometry","stylers":[{"visibility":"on"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#e5c163"},{"lightness":"0"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.highway","elementType":"labels.text.stroke","stylers":[{"color":"#e5c163"}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":18}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#575757"}]},{"featureType":"road.arterial","elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.arterial","elementType":"labels.text.stroke","stylers":[{"color":"#2c2c2c"}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":16}]},{"featureType":"road.local","elementType":"labels.text.fill","stylers":[{"color":"#999999"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":19}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":17}]}]'); break; case 'custom': style = JSON.parse( settings.custom_style ); break; default: style = ''; } return style; } }, // End widgetGoogleMaps widgetBeforeAfter: function( $scope ) { var imagesWrap = $scope.find( '.wpr-ba-image-container' ), imageOne = imagesWrap.find( '.wpr-ba-image-1' ), imageTwo = imagesWrap.find( '.wpr-ba-image-2' ), divider = imagesWrap.find( '.wpr-ba-divider' ), startPos = imagesWrap.attr( 'data-position' ); // Horizontal if ( imagesWrap.hasClass( 'wpr-ba-horizontal' ) ) { // On Load divider.css( 'left', startPos +'%' ); imageTwo.css( 'left', startPos +'%' ); imageTwo.find( 'img' ).css( 'right', startPos +'%' ); // On Move divider.on( 'move', function(e) { var overlayWidth = e.pageX - imagesWrap.offset().left; // Reset divider.css({ 'left' : 'auto', 'right' : 'auto' }); imageTwo.css({ 'left' : 'auto', 'right' : 'auto' }); if ( overlayWidth > 0 && overlayWidth < imagesWrap.outerWidth() ) { divider.css( 'left', overlayWidth ); imageTwo.css( 'left', overlayWidth ); imageTwo.find( 'img' ).css( 'right', overlayWidth ); } else { if ( overlayWidth <= 0 ) { divider.css( 'left', 0 ); imageTwo.css( 'left', 0 ); imageTwo.find( 'img' ).css( 'right', 0 ); } else if ( overlayWidth >= imagesWrap.outerWidth() ) { divider.css( 'right', - divider.outerWidth() / 2 ); imageTwo.css( 'right', 0 ); imageTwo.find( 'img' ).css( 'right', '100%' ); } } hideLabelsOnTouch(); }); // Vertical } else { // On Load divider.css( 'top', startPos +'%' ); imageTwo.css( 'top', startPos +'%' ); imageTwo.find( 'img' ).css( 'bottom', startPos +'%' ); // On Move divider.on( 'move', function(e) { var overlayWidth = e.pageY - imagesWrap.offset().top; // Reset divider.css({ 'top' : 'auto', 'bottom' : 'auto' }); imageTwo.css({ 'top' : 'auto', 'bottom' : 'auto' }); if ( overlayWidth > 0 && overlayWidth < imagesWrap.outerHeight() ) { divider.css( 'top', overlayWidth ); imageTwo.css( 'top', overlayWidth ); imageTwo.find( 'img' ).css( 'bottom', overlayWidth ); } else { if ( overlayWidth <= 0 ) { divider.css( 'top', 0 ); imageTwo.css( 'top', 0 ); imageTwo.find( 'img' ).css( 'bottom', 0 ); } else if ( overlayWidth >= imagesWrap.outerHeight() ) { divider.css( 'bottom', - divider.outerHeight() / 2 ); imageTwo.css( 'bottom', 0 ); imageTwo.find( 'img' ).css( 'bottom', '100%' ); } } hideLabelsOnTouch(); }); } // Mouse Hover if ( 'mouse' === imagesWrap.attr( 'data-trigger' ) ) { imagesWrap.on( 'mousemove', function( event ) { // Horizontal if ( imagesWrap.hasClass( 'wpr-ba-horizontal' ) ) { var overlayWidth = event.pageX - $(this).offset().left; divider.css( 'left', overlayWidth ); imageTwo.css( 'left', overlayWidth ); imageTwo.find( 'img' ).css( 'right', overlayWidth ); // Vertical } else { var overlayWidth = event.pageY - $(this).offset().top; divider.css( 'top', overlayWidth ); imageTwo.css( 'top', overlayWidth ); imageTwo.find( 'img' ).css( 'bottom', overlayWidth ); } hideLabelsOnTouch(); }); } // Hide Labels hideLabelsOnTouch(); function hideLabelsOnTouch() { var labelOne = imagesWrap.find( '.wpr-ba-label-1 div' ), labelTwo = imagesWrap.find( '.wpr-ba-label-2 div' ); if ( ! labelOne.length && ! labelTwo.length ) { return; } // Horizontal if ( imagesWrap.hasClass( 'wpr-ba-horizontal' ) ) { var labelOneOffset = labelOne.position().left + labelOne.outerWidth(), labelTwoOffset = labelTwo.position().left + labelTwo.outerWidth(); if ( labelOneOffset + 15 >= parseInt( divider.css( 'left' ), 10 ) ) { labelOne.stop().css( 'opacity', 0 ); } else { labelOne.stop().css( 'opacity', 1 ); } if ( (imagesWrap.outerWidth() - (labelTwoOffset + 15)) <= parseInt( divider.css( 'left' ), 10 ) ) { labelTwo.stop().css( 'opacity', 0 ); } else { labelTwo.stop().css( 'opacity', 1 ); } // Vertical } else { var labelOneOffset = labelOne.position().top + labelOne.outerHeight(), labelTwoOffset = labelTwo.position().top + labelTwo.outerHeight(); if ( labelOneOffset + 15 >= parseInt( divider.css( 'top' ), 10 ) ) { labelOne.stop().css( 'opacity', 0 ); } else { labelOne.stop().css( 'opacity', 1 ); } if ( (imagesWrap.outerHeight() - (labelTwoOffset + 15)) <= parseInt( divider.css( 'top' ), 10 ) ) { labelTwo.stop().css( 'opacity', 0 ); } else { labelTwo.stop().css( 'opacity', 1 ); } } } }, // End widgetBeforeAfter widgetMailchimp: function( $scope ) { var mailchimpForm = $scope.find( 'form' ); mailchimpForm.on( 'submit', function(e) { e.preventDefault(); var buttonText = $(this).find('button').text(); // Change Text $(this).find('button').text( $(this).find('button').data('loading') ); $.ajax({ url: WprConfig.ajaxurl, type: 'POST', data: { action: 'mailchimp_subscribe', fields: $(this).serialize(), apiKey: mailchimpForm.data( 'api-key' ), listId: mailchimpForm.data( 'list-id' ) }, success: function(data) { mailchimpForm.find('button').text( buttonText ); if ( 'subscribed' === data.status ) { $scope.find( '.wpr-mailchimp-success-message' ).show(); } else { $scope.find( '.wpr-mailchimp-error-message' ).show(); } $scope.find( '.wpr-mailchimp-message' ).fadeIn(); } }); }); }, // End widgetMailchimp widgetAdvancedSlider: function( $scope ) { var $advancedSlider = $scope.find( '.wpr-advanced-slider' ), sliderData = $advancedSlider.data('slick'); // Slider Columns var sliderClass = $scope.attr('class'), sliderColumnsDesktop = sliderClass.match(/wpr-adv-slider-columns-\d/) ? sliderClass.match(/wpr-adv-slider-columns-\d/).join().slice(-1) : 2, sliderColumnsWideScreen = sliderClass.match(/columns--widescreen\d/) ? sliderClass.match(/columns--widescreen\d/).join().slice(-1) : sliderColumnsDesktop, sliderColumnsLaptop = sliderClass.match(/columns--laptop\d/) ? sliderClass.match(/columns--laptop\d/).join().slice(-1) : sliderColumnsDesktop, sliderColumnsTabletExtra = sliderClass.match(/columns--tablet_extra\d/) ? sliderClass.match(/columns--tablet_extra\d/).join().slice(-1) : sliderColumnsTablet, sliderColumnsTablet = sliderClass.match(/columns--tablet\d/) ? sliderClass.match(/columns--tablet\d/).join().slice(-1) : 2, sliderColumnsMobileExtra = sliderClass.match(/columns--mobile_extra\d/) ? sliderClass.match(/columns--mobile_extra\d/).join().slice(-1) : sliderColumnsTablet, sliderColumnsMobile = sliderClass.match(/columns--mobile\d/) ? sliderClass.match(/columns--mobile\d/).join().slice(-1) : 1, sliderSlidesToScroll = +(sliderClass.match(/wpr-adv-slides-to-scroll-\d/).join().slice(-1)), dataSlideEffect = $advancedSlider.attr('data-slide-effect'); $advancedSlider.slick({ appendArrows : $scope.find('.wpr-slider-controls'), appendDots : $scope.find('.wpr-slider-dots'), customPaging : function (slider, i) { var slideNumber = (i + 1), totalSlides = slider.slideCount; return ''; }, slidesToShow: sliderColumnsDesktop, responsive: [ { breakpoint: 10000, settings: { slidesToShow: sliderColumnsWideScreen, slidesToScroll: sliderSlidesToScroll > sliderColumnsWideScreen ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsWideScreen && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 2399, settings: { slidesToShow: sliderColumnsDesktop, slidesToScroll: sliderSlidesToScroll > sliderColumnsDesktop ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsDesktop && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1221, settings: { slidesToShow: sliderColumnsLaptop, slidesToScroll: sliderSlidesToScroll > sliderColumnsLaptop ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsLaptop && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1200, settings: { slidesToShow: sliderColumnsTabletExtra, slidesToScroll: sliderSlidesToScroll > sliderColumnsTabletExtra ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsTabletExtra && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1024, settings: { slidesToShow: sliderColumnsTablet, slidesToScroll: sliderSlidesToScroll > sliderColumnsTablet ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsTablet && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 880, settings: { slidesToShow: sliderColumnsMobileExtra, slidesToScroll: sliderSlidesToScroll > sliderColumnsMobileExtra ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsMobileExtra && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 768, settings: { slidesToShow: sliderColumnsMobile, slidesToScroll: sliderSlidesToScroll > sliderColumnsMobile ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsMobile && 'fade' === dataSlideEffect) ? true : false } } ], }); function sliderVideoSize(){ var sliderWidth = $advancedSlider.find('.wpr-slider-item').outerWidth(), sliderHeight = $advancedSlider.find('.wpr-slider-item').outerHeight(), sliderRatio = sliderWidth / sliderHeight, iframeRatio = (16/9), iframeHeight, iframeWidth, iframeTopDistance = 0, iframeLeftDistance = 0; if ( sliderRatio > iframeRatio ) { iframeWidth = sliderWidth; iframeHeight = iframeWidth / iframeRatio; iframeTopDistance = '-'+ ( iframeHeight - sliderHeight ) / 2 +'px'; } else { iframeHeight = sliderHeight; iframeWidth = iframeHeight * iframeRatio; iframeLeftDistance = '-'+ ( iframeWidth - sliderWidth ) / 2 +'px'; } $advancedSlider.find('iframe').css({ 'width': iframeWidth +'px', 'height': iframeHeight +'px', 'max-width': 'none', 'position': 'absolute', 'left': iframeLeftDistance +'', 'top': iframeTopDistance +'', 'display': 'block', 'text-align': 'inherit', 'line-height':'0px', 'border-width': '0px', 'margin': '0px', 'padding': '0px', }); } $(window).on('load resize', function(){ sliderVideoSize(); }); function autoplayVideo() { $advancedSlider.find('.slick-active').each(function() { var videoSrc = $(this).attr('data-video-src'), videoAutoplay = $(this).attr('data-video-autoplay'); if( $(this).find( '.wpr-slider-video' ).length !== 1 && videoAutoplay === 'yes' ) { if ( sliderColumnsDesktop == 1 ) { $(this).find('.wpr-cv-inner').prepend('
'); } else { $(this).find('.wpr-cv-container').prepend('
'); } sliderVideoSize(); } }); } autoplayVideo(); function slideAnimationOff() { if ( sliderColumnsDesktop == 1 ) { $advancedSlider.find('.wpr-slider-item').not('.slick-active').find('.wpr-slider-animation').removeClass( 'wpr-animation-enter' ); } } function slideAnimationOn() { $advancedSlider.find('.slick-active').find('.wpr-slider-content').fadeIn(0); if ( sliderColumnsDesktop == 1 ) { $advancedSlider.find('.slick-active').find('.wpr-slider-animation').addClass( 'wpr-animation-enter' ); } } slideAnimationOn(); $advancedSlider.find('.wpr-slider-video-btn').on( 'click', function() { var currentSlide = $(this).closest('.slick-active'), videoSrc = currentSlide.attr('data-video-src'); if ( currentSlide.find( '.wpr-slider-video' ).length !== 1 ) { currentSlide.find('.wpr-cv-container').prepend('
'); sliderVideoSize(); currentSlide.find('.wpr-slider-content').fadeOut(300); } }); $advancedSlider.on( { beforeChange: function() { $advancedSlider.find('.wpr-slider-item').not('.slick-active').find('.wpr-slider-video').remove(); $advancedSlider.find('.wpr-animation-enter').find('.wpr-slider-content').fadeOut(300); slideAnimationOff(); }, afterChange: function( event, slick, currentSlide ) { slideAnimationOn(); autoplayVideo(); } }); // Adjust Horizontal Pagination if ( $scope.find( '.slick-dots' ).length && $scope.hasClass( 'wpr-slider-dots-horizontal') ) { // Calculate Width var dotsWrapWidth = $scope.find( '.slick-dots li' ).outerWidth() * $scope.find( '.slick-dots li' ).length - parseInt( $scope.find( '.slick-dots li span' ).css( 'margin-right' ), 10 ); // on Load if ( $scope.find( '.slick-dots' ).length ) { $scope.find( '.slick-dots' ).css( 'width', dotsWrapWidth ); } // on Resize $(window).on( 'resize', function() { setTimeout(function() { // Calculate Width var dotsWrapWidth = $scope.find( '.slick-dots li' ).outerWidth() * $scope.find( '.slick-dots li' ).length - parseInt( $scope.find( '.slick-dots li span' ).css( 'margin-right' ), 10 ); // Set Width $scope.find( '.slick-dots' ).css( 'width', dotsWrapWidth ); }, 300 ); }); } }, // End widgetAdvancedSlider widgetTestimonialCarousel: function( $scope ) { var testimonialCarousel = $scope.find( '.wpr-testimonial-carousel' ); // Slider Columns var sliderClass = $scope.attr('class'), sliderColumnsDesktop = sliderClass.match(/wpr-testimonial-slider-columns-\d/) ? sliderClass.match(/wpr-testimonial-slider-columns-\d/).join().slice(-1) : 2, sliderColumnsWideScreen = sliderClass.match(/columns--widescreen\d/) ? sliderClass.match(/columns--widescreen\d/).join().slice(-1) : sliderColumnsDesktop, sliderColumnsLaptop = sliderClass.match(/columns--laptop\d/) ? sliderClass.match(/columns--laptop\d/).join().slice(-1) : sliderColumnsDesktop, sliderColumnsTabletExtra = sliderClass.match(/columns--tablet_extra\d/) ? sliderClass.match(/columns--tablet_extra\d/).join().slice(-1) : sliderColumnsTablet, sliderColumnsTablet = sliderClass.match(/columns--tablet\d/) ? sliderClass.match(/columns--tablet\d/).join().slice(-1) : 2, sliderColumnsMobileExtra = sliderClass.match(/columns--mobile_extra\d/) ? sliderClass.match(/columns--mobile_extra\d/).join().slice(-1) : sliderColumnsTablet, sliderColumnsMobile = sliderClass.match(/columns--mobile\d/) ? sliderClass.match(/columns--mobile\d/).join().slice(-1) : 1, sliderSlidesToScroll = +(sliderClass.match(/wpr-adv-slides-to-scroll-\d/).join().slice(-1)), dataSlideEffect = testimonialCarousel.attr('data-slide-effect'); testimonialCarousel.slick({ appendArrows: $scope.find('.wpr-testimonial-controls'), appendDots: $scope.find('.wpr-testimonial-dots'), customPaging: function (slider, i) { var slideNumber = (i + 1), totalSlides = slider.slideCount; return ''; }, slidesToShow: sliderColumnsDesktop, responsive: [ { breakpoint: 10000, settings: { slidesToShow: sliderColumnsWideScreen, slidesToScroll: sliderSlidesToScroll > sliderColumnsWideScreen ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsWideScreen && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 2399, settings: { slidesToShow: sliderColumnsDesktop, slidesToScroll: sliderSlidesToScroll > sliderColumnsDesktop ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsDesktop && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1221, settings: { slidesToShow: sliderColumnsLaptop, slidesToScroll: sliderSlidesToScroll > sliderColumnsLaptop ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsLaptop && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1200, settings: { slidesToShow: sliderColumnsTabletExtra, slidesToScroll: sliderSlidesToScroll > sliderColumnsTabletExtra ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsTabletExtra && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1024, settings: { slidesToShow: sliderColumnsTablet, slidesToScroll: sliderSlidesToScroll > sliderColumnsTablet ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsTablet && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 880, settings: { slidesToShow: sliderColumnsMobileExtra, slidesToScroll: sliderSlidesToScroll > sliderColumnsMobileExtra ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsMobileExtra && 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 768, settings: { slidesToShow: sliderColumnsMobile, slidesToScroll: sliderSlidesToScroll > sliderColumnsMobile ? 1 : sliderSlidesToScroll, fade: (1 == sliderColumnsMobile && 'fade' === dataSlideEffect) ? true : false } } ], }); // Show Arrows On Hover if ( $scope.hasClass( 'wpr-testimonial-nav-fade' ) ) { $scope.on( 'mouseover', function() { $scope.closest( 'section' ).find( '.wpr-testimonial-arrow' ).css({ 'opacity' : 1, }); } ); $scope.closest( 'section' ).on( 'mouseout', function() { $scope.find( '.wpr-testimonial-arrow' ).css({ 'opacity' : 0, }); } ); } // on Load if ( $scope.find( '.slick-dots' ).length ) { // Calculate Width var dotsWrapWidth = $scope.find( '.slick-dots li' ).outerWidth() * $scope.find( '.slick-dots li' ).length - parseInt( $scope.find( '.slick-dots li span' ).css( 'margin-right' ), 10 ); // Set Width $scope.find( '.slick-dots' ).css( 'width', dotsWrapWidth ); } // on Resize $(window).on( 'resize', function() { setTimeout(function() { if ( $scope.find( '.slick-dots' ).length ) { // Calculate Width var dotsWrapWidth = $scope.find( '.slick-dots li' ).outerWidth() * $scope.find( '.slick-dots li' ).length - parseInt( $scope.find( '.slick-dots li span' ).css( 'margin-right' ), 10 ); // Set Width $scope.find( '.slick-dots' ).css( 'width', dotsWrapWidth ); } }, 300 ); }); }, // End widgetTestimonialCarousel widgetSearch: function( $scope ) { $scope.find('.wpr-search-form-input').on( { focus: function() { $scope.addClass( 'wpr-search-form-input-focus' ); }, blur: function() { $scope.removeClass( 'wpr-search-form-input-focus' ); } } ); }, // End widgetSearch widgetAdvancedText: function( $scope ) { if ( $scope.hasClass('wpr-advanced-text-style-animated') ) { var animText = $scope.find( '.wpr-anim-text' ), animLetters = $scope.find( '.wpr-anim-text-letters' ), animDuration = animText.attr( 'data-anim-duration' ), animDurationData = animDuration.split( ',' ), animLoop = animText.attr( 'data-anim-loop' ), animTextLength = animText.find('b').length, animTextCount = 0; animText.find('b').first().addClass('wpr-anim-text-visible'); // set animation timing var animDuration = parseInt( animDurationData[0], 10), animDelay = parseInt( animDurationData[1], 10), //type effect selectionDuration = 500, typeAnimationDelay = selectionDuration + 800; initHeadline(); } function loadLongShadow() { var $clippedText = $scope.find( '.wpr-clipped-text' ), clippedOption = $clippedText.data('clipped-options'), currentDeviceMode = elementorFrontend.getCurrentDeviceMode(); if ( clippedOption ) { var longShadowSize = clippedOption.longShadowSize, longShadowSizeTablet = clippedOption.longShadowSizeTablet, longShadowSizeMobile = clippedOption.longShadowSizeMobile; if ('desktop' === currentDeviceMode ) { longShadowSize = clippedOption.longShadowSize; } if ('tablet' === currentDeviceMode && longShadowSizeTablet ) { longShadowSize = longShadowSizeTablet; } if ('mobile' === currentDeviceMode && longShadowSizeMobile ) { longShadowSize = longShadowSizeMobile; } $clippedText.find('.wpr-clipped-text-long-shadow').attr('style','text-shadow:'+longShadow( clippedOption.longShadowColor, longShadowSize, clippedOption.longShadowDirection )); } } loadLongShadow(); $(window).on( 'resize', function(){ loadLongShadow(); }); function initHeadline() { //insert element for each letter of a changing word singleLetters(animLetters.find('b')); //initialise headline animation animateHeadline(animText); } function singleLetters($words) { $words.each(function() { var word = $(this), letters = word.text().split(''), selected = word.hasClass('wpr-anim-text-visible'); for (var i in letters) { var letter = letters[i].replace(/ /g, ' '); letters[i] = (selected) ? '' + letter + '': '' + letter + ''; } var newLetters = letters.join(''); word.html(newLetters).css('opacity', 1); }); } function animateHeadline($headlines) { var duration = animDelay; $headlines.each(function(){ var headline = $(this), spanWrapper = headline.find('.wpr-anim-text-inner'); if (headline.hasClass('wpr-anim-text-type-clip')){ var newWidth = spanWrapper.outerWidth(); spanWrapper.css('width', newWidth); } //trigger animation setTimeout(function(){ hideWord( headline.find('.wpr-anim-text-visible').eq(0) ); }, duration); // Fix Bigger Words Flip if( headline.hasClass( 'wpr-anim-text-type-rotate-1' ) ) { spanWrapper.find( 'b' ).each(function() { if ( $(this).outerWidth() > spanWrapper.outerWidth() ) { spanWrapper.css( 'width', $(this).outerWidth() ); } }); } }); } function hideWord($word) { var nextWord = takeNext($word); if ( animLoop !== 'yes' ) { animTextCount++; if ( animTextCount === animTextLength ) { return; } } if($word.parents('.wpr-anim-text').hasClass('wpr-anim-text-type-typing')) { var parentSpan = $word.parent('.wpr-anim-text-inner'); parentSpan.addClass('wpr-anim-text-selected').removeClass('waiting'); setTimeout(function(){ parentSpan.removeClass('wpr-anim-text-selected'); $word.removeClass('wpr-anim-text-visible').addClass('wpr-anim-text-hidden').children('i').removeClass('wpr-anim-text-in').addClass('wpr-anim-text-out'); }, selectionDuration); setTimeout(function(){ showWord(nextWord, animDuration) }, typeAnimationDelay); } else if($word.parents('.wpr-anim-text').hasClass('wpr-anim-text-letters')) { var bool = ( $word.children( 'i' ).length >= nextWord.children( 'i' ).length ) ? true : false; hideLetter($word.find('i').eq(0), $word, bool, animDuration); showLetter(nextWord.find('i').eq(0), nextWord, bool, animDuration); } else if($word.parents('.wpr-anim-text').hasClass('wpr-anim-text-type-clip')) { $word.parents('.wpr-anim-text-inner').animate({ width : '2px' }, animDuration, function(){ switchWord($word, nextWord); showWord(nextWord); }); } else { switchWord($word, nextWord); setTimeout(function(){ hideWord(nextWord) }, animDelay); } } function showWord($word, $duration) { if ( $word.parents( '.wpr-anim-text' ).hasClass( 'wpr-anim-text-type-typing' ) ) { showLetter( $word.find( 'i' ).eq(0), $word, false, $duration ); $word.addClass( 'wpr-anim-text-visible' ).removeClass( 'wpr-anim-text-hidden' ); } else if( $word.parents( '.wpr-anim-text' ).hasClass( 'wpr-anim-text-type-clip' ) ) { $word.parents( '.wpr-anim-text-inner' ).animate({ 'width' : $word.outerWidth() }, animDuration, function() { setTimeout( function() { hideWord($word); }, animDelay ); }); } } function hideLetter($letter, $word, $bool, $duration) { $letter.removeClass('wpr-anim-text-in').addClass('wpr-anim-text-out'); if(!$letter.is(':last-child')) { setTimeout(function(){ hideLetter($letter.next(), $word, $bool, $duration); }, $duration); } else if($bool) { setTimeout(function(){ hideWord(takeNext($word)) }, animDelay); } if($letter.is(':last-child') ) { var nextWord = takeNext($word); switchWord($word, nextWord); } } function showLetter($letter, $word, $bool, $duration) { $letter.addClass('wpr-anim-text-in').removeClass('wpr-anim-text-out'); if(!$letter.is(':last-child')) { setTimeout(function(){ showLetter($letter.next(), $word, $bool, $duration); }, $duration); } else { if($word.parents('.wpr-anim-text').hasClass('wpr-anim-text-type-typing')) { setTimeout(function(){ $word.parents('.wpr-anim-text-inner').addClass('waiting'); }, 200);} if(!$bool) { setTimeout(function(){ hideWord($word) }, animDelay) } } } function takeNext($word) { return (!$word.is(':last-child')) ? $word.next() : $word.parent().children().eq(0); } function takePrev($word) { return (!$word.is(':first-child')) ? $word.prev() : $word.parent().children().last(); } function switchWord($oldWord, $newWord) { $oldWord.removeClass('wpr-anim-text-visible').addClass('wpr-anim-text-hidden'); $newWord.removeClass('wpr-anim-text-hidden').addClass('wpr-anim-text-visible'); } function longShadow( shadowColor, shadowSize, shadowDirection ) { var textshadow = ''; for ( var i = 0, len = shadowSize; i < len; i++ ) { switch ( shadowDirection ) { case 'top': textshadow += '0 -'+ i +'px 0 '+ shadowColor +','; break; case 'right': textshadow += i +'px 0 0 '+ shadowColor +','; break; case 'bottom': textshadow += '0 '+ i +'px 0 '+ shadowColor +','; break; case 'left': textshadow += '-'+ i +'px 0 0 '+ shadowColor +','; break; case 'top-left': textshadow += '-'+ i +'px -'+ i +'px 0 '+ shadowColor +','; break; case 'top-right': textshadow += i +'px -'+ i +'px 0 '+ shadowColor +','; break; case 'bottom-left': textshadow += '-'+ i +'px '+ i +'px 0 '+ shadowColor +','; break; case 'bottom-right': textshadow += i +'px '+ i +'px 0 '+ shadowColor +','; break; default: textshadow += i +'px '+ i +'px 0 '+ shadowColor +','; break; } } textshadow = textshadow.slice(0, -1); return textshadow; } }, // End widgetAdvancedText widgetProgressBar: function( $scope ) { var $progressBar = $scope.find( '.wpr-progress-bar' ), prBarCircle = $scope.find( '.wpr-prbar-circle' ), $prBarCircleSvg = prBarCircle.find('.wpr-prbar-circle-svg'), $prBarCircleLine = $prBarCircleSvg.find('.wpr-prbar-circle-line'), $prBarCirclePrline = $scope.find( '.wpr-prbar-circle-prline' ), prBarHrLine = $progressBar.find('.wpr-prbar-hr-line-inner'), prBarVrLine = $progressBar.find('.wpr-prbar-vr-line-inner'), prBarOptions = $progressBar.data('options'), prBarCircleOptions = prBarCircle.data('circle-options'), prBarCounter = $progressBar.find('.wpr-prbar-counter-value'), prBarCounterValue = prBarOptions.counterValue, prBarCounterValuePersent = prBarOptions.counterValuePersent, prBarAnimDuration = prBarOptions.animDuration, prBarAnimDelay = prBarOptions.animDelay, prBarLoopDelay = +prBarOptions.loopDelay, currentDeviceMode = elementorFrontend.getCurrentDeviceMode(), numeratorData = { toValue: prBarCounterValue, duration: prBarAnimDuration, }; if ( 'yes' === prBarOptions.counterSeparator ) { numeratorData.delimiter = ','; } function isInViewport( $selector ) { if ( $selector.length ) { var elementTop = $selector.offset().top, elementBottom = elementTop + $selector.outerHeight(), viewportTop = $(window).scrollTop(), viewportBottom = viewportTop + $(window).height(); if ( elementTop > $(window).height() ) { elementTop += 50; } return elementBottom > viewportTop && elementTop < viewportBottom; } }; function progressBar() { if ( isInViewport( prBarVrLine ) ) { prBarVrLine.css({ 'height': prBarCounterValuePersent + '%' }); } if ( isInViewport( prBarHrLine ) ) { prBarHrLine.css({ 'width': prBarCounterValuePersent + '%' }); } if ( isInViewport( prBarCircle ) ) { var circleDashOffset = prBarCircleOptions.circleOffset; $prBarCirclePrline.css({ 'stroke-dashoffset': circleDashOffset }); } // Set Delay if ( isInViewport( prBarVrLine ) || isInViewport( prBarHrLine ) || isInViewport( prBarCircle ) ) { setTimeout(function() { prBarCounter.numerator( numeratorData ); }, prBarAnimDelay ); } } progressBar(); if (prBarOptions.loop === 'yes') { setInterval(function() { if ( isInViewport( prBarVrLine ) ) { prBarVrLine.css({ 'height': 0 + '%' }); } if ( isInViewport( prBarHrLine ) ) { prBarHrLine.css({ 'width': 0 + '%' }); } if ( isInViewport( prBarCircle ) ) { var circleDashOffset = prBarCircleOptions.circleOffset; $prBarCirclePrline.css({ 'stroke-dashoffset': $prBarCirclePrline.css('stroke-dasharray') }); } // Set Delay if ( isInViewport( prBarVrLine ) || isInViewport( prBarHrLine ) || isInViewport( prBarCircle ) ) { setTimeout(function() { prBarCounter.numerator( { toValue: 0, duration: prBarAnimDuration, } ); }, prBarAnimDelay); } setTimeout(function() { progressBar(); }, prBarAnimDuration + prBarAnimDelay); }, (prBarAnimDuration + prBarAnimDelay) * prBarLoopDelay); } $(window).on('scroll', function() { progressBar(); }); }, // End widgetProgressBar widgetImageHotspots: function( $scope ) { var $imgHotspots = $scope.find( '.wpr-image-hotspots' ), hotspotsOptions = $imgHotspots.data('options'), $hotspotItem = $imgHotspots.find('.wpr-hotspot-item'), tooltipTrigger = hotspotsOptions.tooltipTrigger; if ( 'click' === tooltipTrigger ) { $hotspotItem.on( 'click', function() { if ( $(this).hasClass('wpr-tooltip-active') ) { $(this).removeClass('wpr-tooltip-active'); } else { $hotspotItem.removeClass('wpr-tooltip-active'); $(this).addClass('wpr-tooltip-active'); } event.stopPropagation(); }); $(window).on( 'click', function () { $hotspotItem.removeClass('wpr-tooltip-active'); }); } else if ( 'hover' === tooltipTrigger ) { $hotspotItem.hover(function () { $(this).toggleClass('wpr-tooltip-active'); }); } else { $hotspotItem.addClass('wpr-tooltip-active'); } }, // End widgetImageHotspots widgetFlipBox: function( $scope ) { var $flipBox = $scope.find('.wpr-flip-box'), flipBoxTrigger = $flipBox.data('trigger'); if ( 'box' === flipBoxTrigger ) { $flipBox.find('.wpr-flip-box-front').on( 'click', function() { $(this).closest('.wpr-flip-box').addClass('wpr-flip-box-active'); }); $(window).on( 'click', function () { if( $(event.target).closest('.wpr-flip-box').length === 0 ) { $flipBox.removeClass('wpr-flip-box-active'); } }); } else if ( 'btn' == flipBoxTrigger ) { $flipBox.find('.wpr-flip-box-btn').on( 'click', function() { $(this).closest('.wpr-flip-box').addClass('wpr-flip-box-active'); }); $(window).on( 'click', function () { if( $(event.target).closest('.wpr-flip-box').length === 0 ) { $flipBox.removeClass('wpr-flip-box-active'); } }); } else if ( 'hover' == flipBoxTrigger ) { $flipBox.hover(function () { $(this).toggleClass('wpr-flip-box-active'); }); } }, // End widgetFlipBox widgetContentTicker: function( $scope ) { var $contentTickerSlider = $scope.find( '.wpr-ticker-slider' ), $contentTickerMarquee = $scope.find( '.wpr-ticker-marquee' ), marqueeData = $contentTickerMarquee.data('options'); // Slider Columns var sliderClass = $scope.attr('class'), sliderColumnsDesktop = sliderClass.match(/wpr-ticker-slider-columns-\d/) ? sliderClass.match(/wpr-ticker-slider-columns-\d/).join().slice(-1) : 2, sliderColumnsWideScreen = sliderClass.match(/columns--widescreen\d/) ? sliderClass.match(/columns--widescreen\d/).join().slice(-1) : sliderColumnsDesktop, sliderColumnsLaptop = sliderClass.match(/columns--laptop\d/) ? sliderClass.match(/columns--laptop\d/).join().slice(-1) : sliderColumnsDesktop, sliderColumnsTabletExtra = sliderClass.match(/columns--tablet_extra\d/) ? sliderClass.match(/columns--tablet_extra\d/).join().slice(-1) : sliderColumnsTablet, sliderColumnsTablet = sliderClass.match(/columns--tablet\d/) ? sliderClass.match(/columns--tablet\d/).join().slice(-1) : 2, sliderColumnsMobileExtra = sliderClass.match(/columns--mobile_extra\d/) ? sliderClass.match(/columns--mobile_extra\d/).join().slice(-1) : sliderColumnsTablet, sliderColumnsMobile = sliderClass.match(/columns--mobile\d/) ? sliderClass.match(/columns--mobile\d/).join().slice(-1) : 1, dataSlideEffect = $contentTickerSlider.attr('data-slide-effect'), sliderSlidesToScroll = 'hr-slide' === dataSlideEffect && sliderClass.match(/wpr-ticker-slides-to-scroll-\d/) ? +(sliderClass.match(/wpr-ticker-slides-to-scroll-\d/).join().slice(-1)) : 1; $contentTickerSlider.slick({ appendArrows : $scope.find('.wpr-ticker-slider-controls'), slidesToShow: sliderColumnsDesktop, responsive: [ { breakpoint: 10000, settings: { slidesToShow: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect ) ? 1 : sliderColumnsWideScreen, slidesToScroll: sliderSlidesToScroll > sliderColumnsWideScreen ? 1 : sliderSlidesToScroll, fade: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 2399, settings: { slidesToShow: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect ) ? 1 : sliderColumnsDesktop, slidesToScroll: sliderSlidesToScroll > sliderColumnsDesktop ? 1 : sliderSlidesToScroll, fade: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1221, settings: { slidesToShow: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect ) ? 1 : sliderColumnsLaptop, slidesToScroll: sliderSlidesToScroll > sliderColumnsLaptop ? 1 : sliderSlidesToScroll, fade: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1200, settings: { slidesToShow: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect ) ? 1 : sliderColumnsTabletExtra, slidesToScroll: sliderSlidesToScroll > sliderColumnsTabletExtra ? 1 : sliderSlidesToScroll, fade: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 1024, settings: { slidesToShow: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect ) ? 1 : sliderColumnsTablet, slidesToScroll: sliderSlidesToScroll > sliderColumnsTablet ? 1 : sliderSlidesToScroll, fade: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 880, settings: { slidesToShow: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect ) ? 1 : sliderColumnsMobileExtra, slidesToScroll: sliderSlidesToScroll > sliderColumnsMobileExtra ? 1 : sliderSlidesToScroll, fade: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect) ? true : false } }, { breakpoint: 768, settings: { slidesToShow: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect ) ? 1 : sliderColumnsMobile, slidesToScroll: sliderSlidesToScroll > sliderColumnsMobile ? 1 : sliderSlidesToScroll, fade: ('typing' === dataSlideEffect || 'fade' === dataSlideEffect) ? true : false } } ], }); $contentTickerMarquee.marquee(marqueeData); }, // End widgetContentTicker widgetTabs: function( $scope ) { var $tabs = $( '.wpr-tabs', $scope ).first(), $tabList = $( '.wpr-tabs-wrap', $tabs ).first(), $contentWrap = $( '.wpr-tabs-content-wrap', $tabs ).first(), $tabList = $( '> .wpr-tab', $tabList ), $contentList = $( '> .wpr-tab-content', $contentWrap ), tabsData = $tabs.data('options'); // Active Tab var activeTabIndex = tabsData.activeTab - 1; $tabList.eq( activeTabIndex ).addClass( 'wpr-tab-active' ); $contentList.eq( activeTabIndex ).addClass( 'wpr-tab-content-active wpr-animation-enter' ); if ( tabsData.autoplay === 'yes' ) { var startIndex = tabsData.activeTab - 1; var autoplayInterval = setInterval( function() { if ( startIndex < $tabList.length - 1 ) { startIndex++; } else { startIndex = 0; } wprTabsSwitcher( startIndex ); }, tabsData.autoplaySpeed ); } if ( 'hover' === tabsData.trigger ) { wprTabsHover(); } else { wprTabsClick(); } // Tab Switcher function wprTabsSwitcher( index ) { var activeTab = $tabList.eq( index ), activeContent = $contentList.eq( index ), activeContentHeight = 'auto'; $contentWrap.css( { 'height': $contentWrap.outerHeight( true ) } ); $tabList.removeClass( 'wpr-tab-active' ); activeTab.addClass( 'wpr-tab-active' ); $contentList.removeClass( 'wpr-tab-content-active wpr-animation-enter' ); activeContentHeight = activeContent.outerHeight( true ); activeContentHeight += parseInt( $contentWrap.css( 'border-top-width' ) ) + parseInt( $contentWrap.css( 'border-bottom-width' ) ); activeContent.addClass( 'wpr-tab-content-active wpr-animation-enter' ); $contentWrap.css({ 'height': activeContentHeight }); setTimeout( function() { $contentWrap.css( { 'height': 'auto' } ); }, 500 ); } // Tab Click Event function wprTabsClick() { $tabList.on( 'click', function() { var tabIndex = $( this ).data( 'tab' ) - 1; clearInterval( autoplayInterval ); wprTabsSwitcher( tabIndex ); }); } // Tab Hover Event function wprTabsHover() { $tabList.hover( function () { var tabIndex = $( this ).data( 'tab' ) - 1; clearInterval( autoplayInterval ); wprTabsSwitcher( tabIndex ); }); } }, // End widgetTabs widgetContentToogle: function( $scope ) { var $contentToggle = $( '.wpr-content-toggle', $scope ).first(), $switcherContainer = $( '.wpr-switcher-container', $contentToggle ).first(), $switcherWrap = $( '.wpr-switcher-wrap', $contentToggle ).first(), $contentWrap = $( '.wpr-switcher-content-wrap', $contentToggle ).first(), $switcherBg = $( '> .wpr-switcher-bg', $switcherWrap ), $switcherList = $( '> .wpr-switcher', $switcherWrap ), $contentList = $( '> .wpr-switcher-content', $contentWrap ); // Active Tab var activeSwitcherIndex = parseInt( $switcherContainer.data('active-switcher') ) - 1; $switcherList.eq( activeSwitcherIndex ).addClass( 'wpr-switcher-active' ); $contentList.eq( activeSwitcherIndex ).addClass( 'wpr-switcher-content-active wpr-animation-enter' ); function wprSwitcherBg( index ) { if ( ! $scope.hasClass( 'wpr-switcher-label-style-outer' ) ) { var switcherWidth = 100 / $switcherList.length, switcherBgDistance = index * switcherWidth; $switcherBg.css({ 'width' : switcherWidth + '%', 'left': switcherBgDistance + '%' }); } } wprSwitcherBg( activeSwitcherIndex ); // Tab Switcher function wprTabsSwitcher( index ) { var activeSwitcher = $switcherList.eq( index ), activeContent = $contentList.eq( index ), activeContentHeight = 'auto'; // Switcher wprSwitcherBg( index ); if ( ! $scope.hasClass( 'wpr-switcher-label-style-outer' ) ) { $switcherList.removeClass( 'wpr-switcher-active' ); activeSwitcher.addClass( 'wpr-switcher-active' ); if ( $scope.hasClass( 'wpr-switcher-style-dual' ) ) { $switcherContainer.attr( 'data-active-switcher', index + 1 ); } } // Tabs $contentWrap.css( { 'height': $contentWrap.outerHeight( true ) } ); $contentList.removeClass( 'wpr-switcher-content-active wpr-animation-enter' ); activeContentHeight = activeContent.outerHeight( true ); activeContentHeight += parseInt( $contentWrap.css( 'border-top-width' ) ) + parseInt( $contentWrap.css( 'border-bottom-width' ) ); activeContent.addClass( 'wpr-switcher-content-active wpr-animation-enter' ); $contentWrap.css({ 'height': activeContentHeight }); setTimeout( function() { $contentWrap.css( { 'height': 'auto' } ); }, 500 ); } // Tab Click Event function wprTabsClick() { // Outer Labels if ( $scope.hasClass( 'wpr-switcher-label-style-outer' ) ) { $switcherWrap.on( 'click', function() { var activeSwitcher = $switcherWrap.find( '.wpr-switcher-active' ); if ( 1 === parseInt( activeSwitcher.data( 'switcher'), 10 ) ) { // Reset $switcherWrap.children( '.wpr-switcher' ).eq(0).removeClass( 'wpr-switcher-active' ); // Set Active $switcherWrap.children( '.wpr-switcher' ).eq(1).addClass( 'wpr-switcher-active' ); $switcherWrap.closest( '.wpr-switcher-container' ).attr( 'data-active-switcher', 2 ); wprTabsSwitcher( 1 ); } else if ( 2 === parseInt( activeSwitcher.data( 'switcher'), 10 ) ) { // Reset $switcherWrap.children( '.wpr-switcher' ).eq(1).removeClass( 'wpr-switcher-active' ); // Set Active $switcherWrap.children( '.wpr-switcher' ).eq(0).addClass( 'wpr-switcher-active' ); $switcherWrap.closest( '.wpr-switcher-container' ).attr( 'data-active-switcher', 1 ); wprTabsSwitcher( 0 ); } // wprTabsSwitcher( switcherIndex ); }); // Inner Labels / Multi Labels } else { $switcherList.on( 'click', function() { var switcherIndex = $( this ).data( 'switcher' ) - 1; wprTabsSwitcher( switcherIndex ); }); } } wprTabsClick(); }, // End widgetContentToogle widgetBackToTop: function($scope) { var sttBtn = $scope.find( '.wpr-stt-btn' ), settings = sttBtn.attr('data-settings'); // Get Settings settings = JSON.parse(settings); if ( settings.fixed === 'fixed' ) { if ( 'none' !== settings.animation ) { sttBtn.css({ 'opacity' : '0' }); if ( settings.animation ==='slide' ) { sttBtn.css({ 'margin-bottom': '-100px', }); } } // Run on Load scrollToTop($(window).scrollTop(), sttBtn, settings); // Run on Scroll $(window).scroll(function() { scrollToTop($(this).scrollTop(), sttBtn, settings); }); } // end fixed check // Click to Scroll Top sttBtn.on('click', function() { $('html, body').animate({ scrollTop : 0}, settings.scrolAnim ); return false; }); function scrollToTop( scrollTop, button, settings ) { // Show if ( scrollTop > settings.animationOffset ) { if ( 'fade' === settings.animation ) { sttBtn.stop().css('visibility', 'visible').animate({ 'opacity' : '1' }, settings.animationDuration); } else if ( 'slide' === settings.animation ){ sttBtn.stop().css('visibility', 'visible').animate({ 'opacity' : '1', 'margin-bottom' : 0 }, settings.animationDuration); } else { sttBtn.css('visibility', 'visible'); } // Hide } else { if ( 'fade' === settings.animation ) { sttBtn.stop().animate({'opacity': '0'}, settings.animationDuration); } else if (settings.animation === 'slide') { sttBtn.stop().animate({ 'margin-bottom' : '-100px', 'opacity' : '0' }, settings.animationDuration); } else { sttBtn.css('visibility', 'hidden'); } } } }, // End of Back to Top widgetLottieAnimations: function($scope) { var lottieAnimations = $scope.find('.wpr-lottie-animations'), lottieAnimationsWrap = $scope.find('.wpr-lottie-animations-wrapper'), lottieJSON = JSON.parse(lottieAnimations.attr('data-settings')); var animation = lottie.loadAnimation({ container: lottieAnimations[0], // Required path: lottieAnimations.attr('data-json-url'), // Required renderer: lottieJSON.lottie_renderer, // Required loop: 'yes' === lottieJSON.loop ? true : false, // Optional autoplay: 'yes' === lottieJSON.autoplay ? true : false }); animation.setSpeed(lottieJSON.speed); if( lottieJSON.reverse ) { animation.setDirection(-1); } animation.addEventListener('DOMLoaded', function () { if ( 'hover' !== lottieJSON.trigger && 'none' !== lottieJSON.trigger ) { // if ( 'viewport' === lottieJSON.trigger ) { initLottie('load'); $(window).on('scroll', initLottie); } if ( 'hover' === lottieJSON.trigger ) { animation.pause(); lottieAnimations.hover(function () { animation.play(); }, function () { animation.pause(); }); } function initLottie(event) { animation.pause(); if (typeof lottieAnimations[0].getBoundingClientRect === "function") { var height = document.documentElement.clientHeight; var scrollTop = (lottieAnimations[0].getBoundingClientRect().top)/height * 100; var scrollBottom = (lottieAnimations[0].getBoundingClientRect().bottom)/height * 100; var scrollEnd = scrollTop < lottieJSON.scroll_end; var scrollStart = scrollBottom > lottieJSON.scroll_start; if ( 'viewport' === lottieJSON.trigger ) { scrollStart && scrollEnd ? animation.play() : animation.pause(); } if ( 'scroll' === lottieJSON.trigger ) { if( scrollStart && scrollEnd) { animation.pause(); // $(window).scroll(function() { // calculate the percentage the user has scrolled down the page var scrollPercent = 100 * $(window).scrollTop() / ($(document).height() - $(window).height()); var scrollPercentRounded = Math.round(scrollPercent); animation.goToAndStop( (scrollPercentRounded / 100) * 4000); // why 4000 // }); } }; } } }); }, // End of Lottie Animations widgetPostsTimeline: function($scope) { // goback var iScrollTarget = $scope.find( '.wpr-timeline-centered' ).length > 0 ? $scope.find( '.wpr-timeline-centered' ) : '', element = $scope.find('.wpr-timeline-centered').length > 0 ? $scope.find('.wpr-timeline-centered') : '', pagination = $scope.find( '.wpr-grid-pagination' ).length > 0 ? $scope.find( '.wpr-grid-pagination' ) : '', middleLine = $scope.find('.wpr-middle-line').length > 0 ? $scope.find('.wpr-middle-line') : '', timelineFill = $scope.find(".wpr-timeline-fill").length > 0 ? $scope.find(".wpr-timeline-fill") : '', lastIcon = $scope.find('.wpr-main-line-icon.wpr-icon:last').length > 0 ? $scope.find('.wpr-main-line-icon.wpr-icon:last') : '', firstIcon = $scope.find('.wpr-main-line-icon.wpr-icon').length > 0 ? $scope.find('.wpr-main-line-icon.wpr-icon').first() : '', scopeClass = '.elementor-element-'+ $scope.attr( 'data-id' ), aosOffset = $scope.find('.wpr-story-info-vertical').attr('data-animation-offset') ? +$scope.find('.wpr-story-info-vertical').attr('data-animation-offset') : '', aosDuration = $scope.find('.wpr-story-info-vertical').attr('data-animation-duration') ? +$scope.find('.wpr-story-info-vertical').attr('data-animation-duration') : ''; if ( $scope.find('.wpr-timeline-centered').length > 0 ) { $(window).resize(function() { removeLeftAlignedClass(); }); $(window).smartresize(function() { removeLeftAlignedClass(); }); setTimeout(function() { removeLeftAlignedClass(); $(window).trigger('resize'); }, 500); adjustMiddleLineHeight(middleLine, timelineFill, lastIcon, firstIcon, element); setTimeout(function() { adjustMiddleLineHeight(middleLine, timelineFill, lastIcon, firstIcon, element); $(window).trigger('resize'); }, 500); $(window).smartresize(function() { adjustMiddleLineHeight(middleLine, timelineFill, lastIcon, firstIcon, element); }); $(window).resize(function() { adjustMiddleLineHeight(middleLine, timelineFill, lastIcon, firstIcon, element); }); if ( 'load-more' !== iScrollTarget.attr('data-pagination') ) { $scope.find('.wpr-grid-pagination').css('visibility', 'hidden'); } AOS.init({ offset: parseInt(aosOffset), duration: aosDuration, once: true, }); postsTimelineFill(lastIcon, firstIcon); $(window).on('scroll', function() { postsTimelineFill(lastIcon, firstIcon); }); // init Infinite Scroll if ( !$scope.find('.elementor-repeater-items').length && !WprElements.editorCheck() && ('load-more' === $scope.find('.wpr-timeline-centered').data('pagination') || 'infinite-scroll' === $scope.find('.wpr-timeline-centered').data('pagination')) ) { var threshold = iScrollTarget !== undefined && 'load-more' === iScrollTarget.attr('data-pagination') ? false : 10; // var navClass = scopeClass +' .wpr-load-more-btn'; iScrollTarget.infiniteScroll({ path: scopeClass +' .wpr-grid-pagination a', hideNav: false, append: scopeClass +'.wpr-timeline-entry', history: false, scrollThreshold: threshold, status: scopeClass + ' .page-load-status', }); // Request iScrollTarget.on( 'request.infiniteScroll', function( event, path ) { $scope.find( '.wpr-load-more-btn' ).hide(); $scope.find( '.wpr-pagination-loading' ).css( 'display', 'inline-block' ); }); var pagesLoaded = 0; iScrollTarget.on( 'load.infiniteScroll', function( event, response ) { pagesLoaded++; // get posts from response var items = $( response ).find(scopeClass).find( '.wpr-timeline-entry' ); iScrollTarget.infiniteScroll( 'appendItems', items ); if ( !$scope.find('.wpr-one-sided-timeline').length && !$scope.find('.wpr-one-sided-timeline-left').length ) { $scope.find('.wpr-timeline-entry').each(function(index, value){ $(this).removeClass('wpr-right-aligned wpr-left-aligned'); if ( 0 == index % 2 ) { $(this).addClass('wpr-left-aligned'); $(this).find('.wpr-story-info-vertical').attr('data-aos', $(this).find('.wpr-story-info-vertical').attr('data-aos-left')); } else { $(this).addClass('wpr-right-aligned'); $(this).find('.wpr-story-info-vertical').attr('data-aos', $(this).find('.wpr-story-info-vertical').attr('data-aos-right')); } }); } AOS.init({ offset: parseInt(aosOffset), duration: aosDuration, once: true, }); $(window).scroll(); $scope.find( '.wpr-pagination-loading' ).hide(); // $scope.find( '.wpr-load-more-btn' ).fadeIn(); if ( iScrollTarget.data('max-pages') - 1 !== pagesLoaded ) { // $pagination_max_pages if ( 'load-more' === iScrollTarget.attr('data-pagination') ) { $scope.find( '.wpr-load-more-btn' ).fadeIn(); } } else { $scope.find( '.wpr-pagination-finish' ).fadeIn( 1000 ); pagination.delay( 2000 ).fadeOut( 1000 ); } middleLine = $scope.find('.wpr-middle-line'); timelineFill = $scope.find(".wpr-timeline-fill"); lastIcon = $scope.find('.wpr-main-line-icon.wpr-icon:last'); firstIcon = $scope.find('.wpr-main-line-icon.wpr-icon').first(); element = $scope.find('.wpr-timeline-centered'); adjustMiddleLineHeight(middleLine, timelineFill, lastIcon, firstIcon, element); $(window).trigger('resize'); postsTimelineFill(lastIcon, firstIcon); }); if ( !WprElements.editorCheck() ) { $scope.find( '.wpr-load-more-btn' ).on( 'click', function() { iScrollTarget.infiniteScroll( 'loadNextPage' ); return false; }); if ( 'infinite-scroll' == iScrollTarget.attr('data-pagination') ) { iScrollTarget.infiniteScroll('loadNextPage'); } } } } if ( $scope.find('.swiper-wrapper').length ) { var swiperLoader = function swiperLoader(swiperElement, swiperConfig) { if ('undefined' === typeof Swiper) { var asyncSwiper = elementorFrontend.utils.swiper; return new asyncSwiper(swiperElement, swiperConfig).then( function (newSwiperInstance) { return newSwiperInstance; }); } else { return swiperPromise(swiperElement, swiperConfig); } }; var swiperPromise = function swiperPromise(swiperElement, swiperConfig) { return new Promise(function (resolve, reject) { var swiperInstance = new Swiper(swiperElement, swiperConfig); resolve(swiperInstance); }); }; var horizontal = $scope.find('.wpr-horizontal-bottom').length ? '.wpr-horizontal-bottom' : '.wpr-horizontal'; var swiperSlider = $scope.find(horizontal +".swiper-container"); var slidestoshow = swiperSlider.data("slidestoshow"); swiperLoader(swiperSlider, { spaceBetween: +swiperSlider.data('swiper-space-between'), autoplay: swiperSlider.data("autoplay") === 'yes' ? true : false, delay: +swiperSlider.attr('data-swiper-delay'), speed: +swiperSlider.attr('data-swiper-speed'), slidesPerView: swiperSlider.data("slidestoshow"), direction: 'horizontal', pagination: { el: '.wpr-swiper-pagination', type: 'progressbar', }, navigation: { nextEl: '.wpr-button-next', prevEl: '.wpr-button-prev', }, // Responsive breakpoints breakpoints: { // when window width is >= 320px 320: { slidesPerView: 1, }, // when window width is >= 480px 480: { slidesPerView: 2, }, // when window width is >= 640px 769: { // 640 slidesPerView: slidestoshow, } }, }); } function removeLeftAlignedClass() { if ( $scope.find('.wpr-centered').length ) { if ( window.innerWidth <= 767 ) { $scope.find('.wpr-wrapper .wpr-timeline-centered').removeClass('wpr-both-sided-timeline').addClass('wpr-one-sided-timeline').addClass('wpr-remove-one-sided-later'); $scope.find('.wpr-wrapper .wpr-left-aligned').removeClass('wpr-left-aligned').addClass('wpr-right-aligned').addClass('wpr-remove-right-aligned-later'); } else { $scope.find('.wpr-wrapper .wpr-timeline-centered.wpr-remove-one-sided-later').removeClass('wpr-one-sided-timeline').addClass('wpr-both-sided-timeline').removeClass('wpr-remove-one-sided-later'); $scope.find('.wpr-wrapper .wpr-remove-right-aligned-later').removeClass('wpr-right-aligned').addClass('wpr-left-aligned').removeClass('wpr-remove-right-aligned-later'); } } } function postsTimelineFill(lastIcon, firstIcon) { if ( !$scope.find('.wpr-timeline-fill').length ) { return; } if ( $scope.find('.wpr-timeline-entry:eq(0)').prev('.wpr-year-wrap').length > 0 ) { firstIcon = $scope.find('.wpr-year-label').eq(0); } if( timelineFill.length ) { var fillHeight = timelineFill.css('height').slice(0, -2), docScrollTop = document.documentElement.scrollTop, clientHeight = document.documentElement.clientHeight/2; if ( !((docScrollTop + clientHeight - (firstIcon.offset().top)) > lastIcon.offset().top - firstIcon.offset().top + parseInt(lastIcon.css('height').slice(0, -2))) ) { timelineFill.css('height', (docScrollTop + clientHeight - (firstIcon.offset().top)) + 'px'); } $scope.find('.wpr-main-line-icon.wpr-icon').each(function () { if ( $(this).offset().top < parseInt( firstIcon.offset().top + parseInt(fillHeight) ) ) { $(this).addClass('wpr-change-border-color'); } else { $(this).removeClass('wpr-change-border-color'); } }); } } function adjustMiddleLineHeight(middleLine, timelineFill, lastIcon, firstIcon, element) { element = $scope.find('.wpr-timeline-centered'); if ( !$scope.find('.wpr-both-sided-timeline').length && !$scope.find('.wpr-one-sided-timeline').length && !$scope.find('.wpr-one-sided-timeline-left').length ) { return; } if ( $scope.find('.wpr-timeline-entry:eq(0)').prev('.wpr-year-wrap').length > 0 ) { firstIcon = $scope.find('.wpr-year-label').eq(0); } var firstIconOffset = firstIcon.offset().top; var lastIconOffset = lastIcon.offset().top; var middleLineTop = (firstIconOffset - element.offset().top) + 'px'; // var middleLineHeight = (lastIconOffset - (lastIcon.css('height').slice(0, -2)/2 + (firstIconOffset - firstIcon.css('height').slice(0, -2)))) + 'px'; var middleLineHeight = lastIconOffset - firstIconOffset + parseInt(lastIcon.css('height').slice(0, -2)); var middleLineMaxHeight = firstIconOffset - lastIconOffset + 'px !important'; middleLine.css('top', middleLineTop); middleLine.css('height', middleLineHeight); // middleLine.css('maxHeight', middleLineMaxHeight); timelineFill !== '' ? timelineFill.css('top', middleLineTop) : ''; } }, // end widgetPostsTimeline widgetSharingButtons: function($scope) { $scope.find('.wpr-sharing-print').on('click', function(e) { e.preventDefault(); window.print(); }); }, // end widgetSharingButtons widgetFlipCarousel: function($scope) { var flipsterSettings = JSON.parse($scope.find('.wpr-flip-carousel').attr('data-settings')); $scope.find('.wpr-flip-carousel').css('opacity', 1); $scope.find('.wpr-flip-carousel').flipster({ itemContainer: 'ul', itemSelector: 'li', fadeIn: 400, start: flipsterSettings.starts_from_center === 'yes' ? 'center' : 0, style: flipsterSettings.carousel_type, loop: flipsterSettings.loop === 'yes' ? true : false, autoplay: flipsterSettings.autoplay === 'no' ? false : flipsterSettings.autoplay_milliseconds, pauseOnHover: flipsterSettings.pause_on_hover === 'yes' ? true : false, click: flipsterSettings.play_on_click === 'yes' ? true : false, scrollwheel: flipsterSettings.play_on_scroll === 'yes' ? true : false, touch: true, nav: 'true' === flipsterSettings.pagination_position ? true : flipsterSettings.pagination_position ? flipsterSettings.pagination_position : false, spacing: flipsterSettings.spacing, buttons: 'custom', buttonPrev: flipsterSettings.button_prev, buttonNext: flipsterSettings.button_next }); var paginationButtons = $scope.find('.wpr-flip-carousel').find('.flipster__nav__item').find('.flipster__nav__link'); paginationButtons.each(function() { $(this).text(parseInt($(this).text()) + 1); }); }, // end widgetFlipCarousel widgetFeatureList: function($scope) { $scope.find('.wpr-feature-list-item:not(:last-of-type)').find('.wpr-feature-list-icon-wrap').each(function(index) { var offsetTop = $scope.find('.wpr-feature-list-item').eq(index + 1).find('.wpr-feature-list-icon-wrap').offset().top; $(this).find('.wpr-feature-list-line').height(offsetTop - $(this).offset().top + 'px'); }); $(window).resize(function() { $scope.find('.wpr-feature-list-item:not(:last-of-type)').find('.wpr-feature-list-icon-wrap').each(function(index) { var offsetTop = $scope.find('.wpr-feature-list-item').eq(index + 1).find('.wpr-feature-list-icon-wrap').offset().top; $(this).find('.wpr-feature-list-line').height(offsetTop - $(this).offset().top + 'px'); }); }) }, // end widgetFeatureList widgetProductAddToCart: function($scope) { var qtyInput = jQuery('.woocommerce .wpr-quantity-wrapper'), qtyInputInStock = qtyInput.find('input.qty').attr('max') ? qtyInput.find('input.qty').attr('max') : 99999999, qtyLayout = $scope.find('.wpr-product-add-to-cart').attr('layout-settings'), qtyWrapper = $scope.find('.wpr-add-to-cart-icons-wrap'), plusIconChild = !$scope.find('.wpr-add-to-cart-icons-wrap').length ? 'last-child' : 'first-child', minusIconChild = !$scope.find('.wpr-add-to-cart-icons-wrap').length ? 'first-child' : 'last-child'; $scope.find('input.qty').each(function() { if (!$(this).val()) { $(this).val(0); } }); $scope.find('.variations').find('select').on('change', function () { var resetButtonDisplay = false; $scope.find('.variations').find('select').each(function () { if ( 'choose an option' !== $(this).find('option:selected').text().toLowerCase() ) { resetButtonDisplay = true; } }); if ( resetButtonDisplay == false ) { $scope.find('.reset_variations').css('display', 'none'); } else { $scope.find('.reset_variations').css('display', 'inline-block'); } }); // convert to text input if (qtyLayout !== 'default' ) { qtyInput.find('input.qty').attr('type', 'text').removeAttr('step').removeAttr('min').removeAttr('max'); } // plus qtyInput.on('click', 'i:'+plusIconChild, function() { if ( parseInt(jQuery(this).prev('.quantity').find('input.qty').val(), 10) < qtyInputInStock && qtyLayout == 'both' ) { jQuery(this).prev('.quantity').find('input.qty').val( parseInt(jQuery(this).prev('.quantity').find('input.qty').val(), 10) + 1); jQuery('input[name="update_cart"]').removeAttr('disabled'); } else if ( parseInt(jQuery(this).parent().siblings('.quantity').find('input.qty').val(), 10) < qtyInputInStock && qtyLayout !== 'both' && qtyLayout !== 'default' ) { jQuery(this).parent().siblings('.quantity').find('input.qty').val( parseInt(jQuery(this).parent().siblings('.quantity').find('input.qty').val(), 10) + 1); jQuery('input[name="update_cart"]').removeAttr('disabled'); } }); // minus qtyInput.on('click', 'i:'+minusIconChild, function() { if ( parseInt(jQuery(this).next('.quantity').find('input.qty').val(), 10) > 0 && qtyLayout == 'both' ) { jQuery(this).next('.quantity').find('input.qty').val( parseInt(jQuery(this).next('.quantity').find('input.qty').val(), 10) - 1); jQuery('input[name="update_cart"]').removeAttr('disabled'); } else if ( parseInt(jQuery(this).parent().siblings('.quantity').find('input.qty').val(), 10) > 0 && qtyLayout !== 'both' && qtyLayout !== 'default' ) { jQuery(this).parent().siblings('.quantity').find('input.qty').val( parseInt(jQuery(this).parent().siblings('.quantity').find('input.qty').val(), 10) - 1); jQuery('input[name="update_cart"]').removeAttr('disabled'); } }); // in stock range check qtyInput.find('input.qty').keyup(function() { if ( jQuery(this).val() > qtyInputInStock ) { jQuery(this).val( qtyInputInStock ); } }); if ( 'yes' === $scope.find('.wpr-product-add-to-cart').data('ajax-add-to-cart') ) { $scope.find('.single_add_to_cart_button').on('click', ajaxAddToCart); } function ajaxAddToCart(e) { e.preventDefault(); let $form = $( this ).closest('form'); if( ! $form[0].checkValidity() ) { $form[0].reportValidity(); return false; } let $thisBtn = $( this ), product_id = $thisBtn.val() || '', cartFormData = $form.serialize(); $.ajax( { type: 'POST', url: WprConfig.ajaxurl, data: 'action=wpr_addons_add_cart_single_product&add-to-cart=' + product_id + '&' + cartFormData, beforeSend: function () { $thisBtn.removeClass( 'added' ).addClass( 'loading' ); }, complete: function () { $thisBtn.addClass( 'added' ).removeClass( 'loading' ); }, success: function ( response ) { if ( response.error && response.product_url ) { window.location = response.product_url; return; } setTimeout( function () { $thisBtn.removeClass( 'added' ); }, 1000 ); $( document.body ).trigger( 'wc_fragment_refresh' ); $( document.body ).trigger( 'added_to_cart', [ response.fragments, response.cart_hash, $thisBtn ] ); if ( typeof wc_add_to_cart_params === 'undefined' ) { return false; } var currentCartCount = parseInt($('.wpr-mini-cart-icon-count').text()); var updatedCartCount = parseInt($scope.find('.wpr-quantity-wrapper .qty').val()); $('.wpr-mini-cart-icon-count').text(currentCartCount + updatedCartCount); }, } ); } }, // End of widgetProductAddToCart widgetProductMiniCart: function($scope) { $scope.find('.wpr-mini-cart').css({"display": "none"}); // $( document.body ).trigger( 'wc_fragment_refresh' ); var animationSpeed = $scope.find('.wpr-mini-cart-wrap').data('animation'); $('body').on('click', function(e) { if ( !e.target.classList.value.includes('wpr-mini-cart') && !e.target.closest('.wpr-mini-cart') ) { if ( $scope.hasClass('wpr-mini-cart-slide') ) { $scope.find('.wpr-mini-cart').slideUp(animationSpeed); } else { $scope.find('.wpr-mini-cart').fadeOut(animationSpeed); } } }); if ( 0 !== $scope.hasClass('wpr-mini-cart-sidebar').length ) { if ( $('#wpadminbar').length ) { $scope.find('.wpr-mini-cart').css({ // 'top': $('#wpadminbar').css('height'), // 'height': $scope.find('.wpr-shopping-cart-wrap').css('height') - $('#wpadminbar').css('height') 'z-index': 999999 }); } closeSideBar(); $scope.find('.wpr-shopping-cart-wrap').on('click', function(e) { // if ( !e.target.classList.value.includes('widget_shopping_cart_content') && !e.target.closest('.widget_shopping_cart_content') ) { if ( !e.target.classList.value.includes('wpr-shopping-cart-inner-wrap') && !e.target.closest('.wpr-shopping-cart-inner-wrap') ) { // $scope.find('.widget_shopping_cart_content').addClass('wpr-mini-cart-slide-out'); $scope.find('.wpr-shopping-cart-inner-wrap').addClass('wpr-mini-cart-slide-out'); $scope.find('.wpr-mini-cart-slide-out').css('animation-speed', animationSpeed); $scope.find('.wpr-shopping-cart-wrap').fadeOut(animationSpeed); $('body').removeClass('wpr-mini-cart-sidebar-body'); setTimeout(function() { // $scope.find('.widget_shopping_cart_content').removeClass('wpr-mini-cart-slide-out'); $scope.find('.wpr-shopping-cart-inner-wrap').removeClass('wpr-mini-cart-slide-out'); $scope.find('.wpr-mini-cart').css({"display": "none"}); }, animationSpeed + 100); } }); } if ( $scope.find('.wpr-mini-cart').length ) { $scope.find('.wpr-mini-cart-toggle-btn').on('click', function(e) { e.stopPropagation(); e.preventDefault(); if( 'none' === $scope.find('.wpr-mini-cart').css("display") ) { if ( $scope.hasClass('wpr-mini-cart-slide') ) { $scope.find('.wpr-mini-cart').slideDown(animationSpeed); } else { $scope.find('.wpr-mini-cart').fadeIn(animationSpeed); } if ( $scope.hasClass('wpr-mini-cart-sidebar') ) { $scope.find('.wpr-shopping-cart-wrap').fadeIn(animationSpeed); // $scope.find('.widget_shopping_cart_content').addClass('wpr-mini-cart-slide-in'); $scope.find('.wpr-shopping-cart-inner-wrap').addClass('wpr-mini-cart-slide-in'); $scope.find('.wpr-mini-cart-slide-in').css('animation-speed', animationSpeed); $('body').addClass('wpr-mini-cart-sidebar-body'); } setTimeout(function() { // $scope.find('.widget_shopping_cart_content').removeClass('wpr-mini-cart-slide-in'); $scope.find('.wpr-shopping-cart-inner-wrap').removeClass('wpr-mini-cart-slide-in'); if ( $scope.hasClass('wpr-mini-cart-sidebar') ) { $scope.find('.wpr-woo-mini-cart').trigger('resize'); } }, animationSpeed + 100); } else { if ( $scope.hasClass('wpr-mini-cart-slide') ) { $scope.find('.wpr-mini-cart').slideUp(animationSpeed); } else { $scope.find('.wpr-mini-cart').fadeOut(animationSpeed); } } }); } var mutationObserver = new MutationObserver(function(mutations) { if ( 0 !== $scope.hasClass('wpr-mini-cart-sidebar').length ) { closeSideBar(); // if ( $scope.find('.wpr-mini-cart').data('close-cart-heading') ) { // $scope.find('.wpr-close-cart h2').text($scope.find('.wpr-mini-cart').data('close-cart-heading').replace(/-/g, ' ')); // } } $scope.find('.woocommerce-mini-cart-item').on('click', '.wpr-remove-item-from-mini-cart', function() { $(this).closest('li').addClass('wpr-before-remove-from-mini-cart'); }); }); // Listen to Mini Cart Changes mutationObserver.observe($scope[0], { childList: true, subtree: true, }); function closeSideBar() { $scope.find('.wpr-close-cart span').on('click', function(e) { // $scope.find('.widget_shopping_cart_content').addClass('wpr-mini-cart-slide-out'); $scope.find('.wpr-shopping-cart-inner-wrap').addClass('wpr-mini-cart-slide-out'); $scope.find('.wpr-mini-cart-slide-out').css('animation-speed', animationSpeed); $scope.find('.wpr-shopping-cart-wrap').fadeOut(animationSpeed); $('body').removeClass('wpr-mini-cart-sidebar-body'); setTimeout(function() { // $scope.find('.widget_shopping_cart_content').removeClass('wpr-mini-cart-slide-out'); $scope.find('.wpr-shopping-cart-inner-wrap').removeClass('wpr-mini-cart-slide-out'); $scope.find('.wpr-mini-cart').css({"display": "none"}); }, animationSpeed + 100); }); } }, // End of widgetProductMiniCart widgetProductFilters: function($scope) { if ( 0 !== $scope.find('.wpr-search-form-input').length ) { $scope.find('.wpr-search-form-input').on( { focus: function() { $scope.addClass( 'wpr-search-form-input-focus' ); }, blur: function() { $scope.removeClass( 'wpr-search-form-input-focus' ); } } ); } }, // End of widgetProductFilters widgetPageCart: function($scope) { // $scope.find('.shipping-calculator-button').trigger('click'); }, // End of widgetPageCart widgetPageMyAccount: function($scope) { if ( WprElements.editorCheck() ) { $scope.find(".woocommerce-MyAccount-content").each(function() { if ( $(this).index() !== 1 ) { $(this).css('display', 'none'); } }); $scope.find('.woocommerce-MyAccount-navigation-link').on('click', function() { var tabContent, tabLinks, pageName; tabContent = $scope.find(".woocommerce-MyAccount-content"); tabContent.each(function() { $(this).css('display', 'none'); }); tabLinks = $scope.find(".woocommerce-MyAccount-navigation-link"); tabLinks.each(function() { $(this).removeClass('is-active'); }); pageName = $(this).attr('class').slice($(this).attr('class').indexOf('--') + 2); $(this).addClass('is-active'); $scope.find('[wpr-my-account-page="'+ pageName +'"]').css('display', 'block'); }); } }, // End of widgetPageMyAccount widgetReadingProgressBar: function($scope) { if ( $scope.find('.wpr-reading-progress-bar-container').length != 0 ) { var rpbContainer = $scope.find('.wpr-reading-progress-bar-container'); readingProgressBar($scope, rpbContainer); } function readingProgressBar($scope, rpbContainer) { var initialPaddingTop = $('body').css('paddingTop'); var initialPaddingBottom = $('body').css('paddingBottom'); if ( '0px' === rpbContainer.css('top') ) { if ( 'colored' == rpbContainer.data('background-type') ) { $('body').css('paddingTop', $scope.find('.wpr-reading-progress-bar').css('height')); } if( $('#wpadminbar').length ) { rpbContainer.css('top', $('#wpadminbar').height()); } $('body').css('paddingBottom', initialPaddingBottom); } else if ( '0px' === rpbContainer.css('bottom') && 'colored' == rpbContainer.data('background-type') ) { $('body').css('paddingBottom', $scope.find('.wpr-reading-progress-bar').css('height')); $('body').css('paddingTop', initialPaddingTop); } readingProgressBarFill($scope); window.onscroll = function() { readingProgressBarFill($scope); }; } function readingProgressBarFill($scope) { if($scope.find('.wpr-reading-progress-bar').length) { var winScroll = document.body.scrollTop || document.documentElement.scrollTop; var height = document.documentElement.scrollHeight - document.documentElement.clientHeight; var scrolled = (winScroll / height) * 100; $scope.find(".wpr-reading-progress-bar").css('width', scrolled + "%"); } } }, widgetDataTable: function($scope) { var beforeFilter = $scope.find("tbody .wpr-table-row"), itemsPerPage = +$scope.find('.wpr-table-inner-container').attr('data-rows-per-page'), paginationListItems = $scope.find('.wpr-table-custom-pagination-list-item'), initialRows = $scope.find('.wpr-table-inner-container tbody tr'), table = $scope.find('.wpr-table-inner-container tbody'), pageIndex, value, paginationIndex; // Table Custom Pagination if ( 'yes' === $scope.find('.wpr-table-inner-container').attr('data-custom-pagination') ) { var tableRows = initialRows.filter(function(index) { return index < $scope.find('.wpr-table-inner-container').attr('data-rows-per-page'); }); table.html(tableRows); adjustPaginationList(); $scope.on('click', '.wpr-table-custom-pagination-list-item', function() { paginationListItems.removeClass('wpr-active-pagination-item'); $(this).addClass('wpr-active-pagination-item'); adjustPaginationList(); table.hide(); pageIndex = +$(this).text(); itemsPerPage = +$scope.find('.wpr-table-inner-container').attr('data-rows-per-page'); table.html(initialRows.filter(function(index) { index++; return index > itemsPerPage * (pageIndex - 1) && index <= itemsPerPage * pageIndex; })); table.show(); beforeFilter = $scope.find("tbody .wpr-table-row"); beforeFilter.find('.wpr-table-tr-before-remove').each(function() { $(this).removeClass('wpr-table-tr-before-remove'); }); entryInfo(); }); $scope.find('.wpr-table-prev-next').each(function() { pageIndex = +$scope.find('.wpr-active-pagination-item').text(); if ( $(this).hasClass('wpr-table-custom-pagination-prev')) { $(this).on('click', function() { if ( 1 < pageIndex ) { paginationListItems.removeClass('wpr-active-pagination-item'); pageIndex--; paginationListItems.each(function(index) { index++; if ( index === pageIndex) { $(this).addClass('wpr-active-pagination-item'); pageIndex = +$(this).text(); } }); adjustPaginationList(); table.html(initialRows.filter(function(index) { index++; return index > itemsPerPage * (pageIndex - 1) && index <= itemsPerPage * pageIndex; })); beforeFilter = $scope.find("tbody .wpr-table-row"); if ( '' == value ) { table.html(beforeFilter); } } entryInfo(); }); } else { $(this).on('click', function() { if ( paginationListItems.length > pageIndex ) { paginationListItems.removeClass('wpr-active-pagination-item'); pageIndex++; paginationListItems.each(function(index) { index++; if ( index === pageIndex) { $(this).addClass('wpr-active-pagination-item'); pageIndex = +$(this).text(); } }); adjustPaginationList(); table.html(initialRows.filter(function(index) { index++; return index > itemsPerPage * (pageIndex - 1) && index <= itemsPerPage * pageIndex; })); beforeFilter = $scope.find("tbody .wpr-table-row"); if ( '' == value ) { table.html(beforeFilter); } } entryInfo(); }); } beforeFilter.find('.wpr-table-tr-before-remove').each(function() { $(this).removeClass('wpr-table-tr-before-remove'); }); }); } $scope.find('.wpr-table-inner-container').removeClass('wpr-hide-table-before-arrange'); entryInfo(); // Table Live Search beforeFilter = $scope.find("tbody .wpr-table-row"); $scope.find(".wpr-table-live-search").keyup(function () { if ( this.value !== '' ) { $scope.find('.wpr-table-pagination-cont').addClass('wpr-hide-pagination-on-search'); } else { $scope.find('.wpr-table-pagination-cont').removeClass('wpr-hide-pagination-on-search'); } value = this.value.toLowerCase().trim(); var afterFilter = []; initialRows.each(function (index) { // if (!index) return; // TODO: restore if better $(this).find("td").each(function () { var id = $(this).text().toLowerCase().trim(); var not_found = (id.indexOf(value) == -1); // $(this).closest('tr').toggle(!not_found); // return not_found; if ( !not_found ) { afterFilter.push($(this).closest('tr')); } }); }); table.html(afterFilter); if ( '' == value ) { table.html(beforeFilter); } entryInfo(); }); // Table Sorting if ( 'yes' === $scope.find('.wpr-table-inner-container').attr('data-table-sorting') ) { $(window).click(function(e) { if ( !$(e.target).hasClass('wpr-table-th') && 0 === $(e.target).closest('.wpr-table-th').length ) { if ( !$(e.target).hasClass('wpr-active-td-bg-color') && 0 === $(e.target).closest('.wpr-active-td-bg-color').length ) { $scope.find('td').each(function() { if($(this).hasClass('wpr-active-td-bg-color')) { $(this).removeClass('wpr-active-td-bg-color'); } }); } } }); $scope.find('th').click(function(){ var indexOfTr = $(this).index(); $scope.find('td').each(function() { if($(this).index() === indexOfTr) { $(this).addClass('wpr-active-td-bg-color'); } else { $(this).removeClass('wpr-active-td-bg-color'); } }); $scope.find('th').each(function() { $(this).find('.wpr-sorting-icon').html(''); }); var table = $(this).parents('table').eq(0); var rows = table.find('tr:gt(0)').toArray().sort(comparer($(this).index())) this.asc = !this.asc if ($scope.hasClass('wpr-data-table-type-custom') ? !this.asc : this.asc) { if ($scope.hasClass('wpr-data-table-type-custom')) { $(this).find('.wpr-sorting-icon').html(''); } else { $(this).find('.wpr-sorting-icon').html(''); } rows = rows.reverse() } if($scope.hasClass('wpr-data-table-type-custom') ? this.asc : !this.asc) { if ($scope.hasClass('wpr-data-table-type-custom')) { $(this).find('.wpr-sorting-icon').html(''); } else { $(this).find('.wpr-sorting-icon').html(''); } } for (var i = 0; i < rows.length; i++) { table.append(rows[i]) } beforeFilter.find('.wpr-table-tr-before-remove').each(function() { $(this).closest('.wpr-table-row').next('.wpr-table-appended-tr').remove(); $(this).removeClass('wpr-table-tr-before-remove'); }); }); } if ( $scope.find('.wpr-table-inner-container').attr('data-row-pagination') === 'yes' ) { $scope.find('.wpr-table-head-row').prepend('' + '#' + '') initialRows.each(function(index) { $(this).prepend(''+ (index + 1) +'') }) } if ( $scope.find('.wpr-table-export-button-cont').length ) { var exportBtn = $scope.find('.wpr-table-export-button-cont .wpr-button');; exportBtn.each(function() { if ( $(this).hasClass('wpr-xls')) { $(this).on('click', function() { let table = $scope.find('table'); TableToExcel.convert(table[0], { // html code may contain multiple tables so here we are refering to 1st table tag name: `export.xlsx`, // fileName you could use any name sheet: { name: 'Sheet 1' // sheetName } }); }); } else if ( $(this).hasClass('wpr-csv')) { $(this).on('click', function() { htmlToCSV('why-this-arg?', "placeholder.csv", $scope.find('.wpr-data-table')); }); } }); } // if('yes' === $scope.find('.wpr-table-inner-container').attr('data-enable-tr-link')) { // $scope.find('tbody tr:eq('+ $scope.find('.wpr-table-inner-container').attr('data-tr-index') +')').click(function() { // window.location.href = 'https://stackoverflow.com/questions/503093/how-do-i-redirect-to-another-webpage'; // // window.open('https://stackoverflow.com/questions/503093/how-do-i-redirect-to-another-webpage', '_blank'); // }); // } function entryInfo() { if ( 'yes' !== $scope.find('.wpr-table-inner-container').attr('data-entry-info') ) { return; } var entryPage = +$scope.find('.wpr-active-pagination-item').text(), lastEntry = itemsPerPage * entryPage - (itemsPerPage - $scope.find('tbody tr').length), firstEntry = lastEntry - $scope.find('tbody tr').length + 1; $scope.find('.wpr-entry-info').html('Showing ' + firstEntry + ' to ' + lastEntry + ' of ' + initialRows.length + ' Entries.'); } function adjustPaginationList() { paginationIndex = $scope.find('.wpr-active-pagination-item').index(); paginationListItems.each(function(index) { if (index == 0 || index == paginationListItems.length - 1 || index <= paginationIndex && index >= paginationIndex - 2) { $(this).css('display', 'flex'); } else { $(this).css('display', 'none'); } }); } function comparer(index) { return function(a, b) { var valA = getCellValue(a, index), valB = getCellValue(b, index) return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.toString().localeCompare(valB) } } function getCellValue (row, index) { return $(row).children('td').eq(index).text() } function htmlToCSV(html, filename, view) { var data = []; var rows = view.find(".wpr-table-row"); for (var i = 0; i < rows.length; i++) { var row = [], cols = rows[i].querySelectorAll(".wpr-table-text"); for (var j = 0; j < cols.length; j++) { row.push(cols[j].innerText); } data.push(row.join(",")); } downloadCSVFile(data.join("\n"), filename); } function downloadCSVFile(csv, filename) { var csv_file, download_link; csv_file = new Blob([csv], {type: "text/csv"}); download_link = document.createElement("a"); download_link.download = filename; download_link.href = window.URL.createObjectURL(csv_file); download_link.style.display = "none"; document.body.appendChild(download_link); download_link.click(); } // Data Table CSV export }, // End widgetDataTable // Editor Check editorCheck: function() { return $( 'body' ).hasClass( 'elementor-editor-active' ) ? true : false; } } // End WprElements $( window ).on( 'elementor/frontend/init', WprElements.init ); }( jQuery, window.elementorFrontend ) ); // Resize Function - Debounce (function($,sr){ var debounce = function (func, threshold, execAsap) { var timeout; return function debounced () { var obj = this, args = arguments; function delayed () { if (!execAsap) func.apply(obj, args); timeout = null; }; if (timeout) clearTimeout(timeout); else if (execAsap) func.apply(obj, args); timeout = setTimeout(delayed, threshold || 100); }; } // smartresize jQuery.fn[sr] = function(fn){ return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); }; })(jQuery,'smartresize');