Plugin Directory

Changeset 3132403


Ignore:
Timestamp:
08/08/2024 03:15:30 AM (18 months ago)
Author:
g5theme
Message:

Released version 1.4.6

Replace waypoints.js with the native Intersection Observer API

Location:
ultimate-bootstrap-elements-for-elementor/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • ultimate-bootstrap-elements-for-elementor/trunk/assets/js/elements/counter.js

    r2801738 r3132403  
    11(function ($) {
    22    'use strict';
    3 
    4     var UbeCounterHandler = function ($scope, $) {
    5         if (typeof Waypoint !== 'undefined') {
     3    var UbeCounterHandler = {
     4        init: function ($scope, $) {
     5            if (!window.IntersectionObserver) {
     6                return;
     7            }
    68            var $counters = $scope.find('.ube-counter-number');
    7             $.each($counters, function () {
    8                 elementorFrontend.waypoint($(this), function () {
    9                     var options_setting = $(this).data('counter-options');
    10                     var start = options_setting.start;
    11                     var end = options_setting.end;
    12                     var decimals = options_setting.decimals;
    13                     var duration = options_setting.duration;
    14                     var separator = options_setting.separator;
    15                     var usegrouping = false;
    16                     if (separator !== '') {
    17                         usegrouping = true
     9            const observer = UbeCounterHandler.createObserver();
     10            observer.observe($counters[0]);
     11        },
     12        createObserver() {
     13            const options = {
     14                root: null,
     15                threshold: 0,
     16                rootMargin: '0px'
     17            };
     18            return new IntersectionObserver(entries => {
     19                entries.forEach(entry => {
     20                    if (entry.isIntersecting && !$(entry.target).hasClass('loaded')) {
     21                        $(entry.target).addClass('loaded');
     22                        var options_setting = $(entry.target).data('counter-options');
     23                        var start = options_setting.start;
     24                        var end = options_setting.end;
     25                        var decimals = options_setting.decimals;
     26                        var duration = options_setting.duration;
     27                        var separator = options_setting.separator;
     28                        var usegrouping = false;
     29                        if (separator !== '') {
     30                            usegrouping = true
     31                        }
     32                        var decimal = options_setting.decimal;
     33                        var prefix = '';
     34                        var suffix = '';
     35                        var options = {
     36                            useEasing: true,
     37                            useGrouping: usegrouping,
     38                            separator: separator,
     39                            decimal: decimal,
     40                            prefix: prefix,
     41                            suffix: suffix
     42                        };
     43                        var counterup = new CountUp(entry.target, start, end, decimals, duration, options);
     44                        counterup.start();
    1845                    }
    19                     var decimal = options_setting.decimal;
    20                     var prefix = '';
    21                     var suffix = '';
    22                     var options = {
    23                         useEasing: true,
    24                         useGrouping: usegrouping,
    25                         separator: separator,
    26                         decimal: decimal,
    27                         prefix: prefix,
    28                         suffix: suffix
    29                     };
    30                     var counterup = new CountUp(this, start, end, decimals, duration, options);
    31                     counterup.start();
    32                 }, {
    33                     triggerOnce: true,
    34                     offset: 'bottom-in-view'
    3546                });
    36             });
    37 
     47            }, options);
    3848        }
    3949    };
    4050     window.addEventListener( 'elementor/frontend/init', () => {
    41         elementorFrontend.hooks.addAction('frontend/element_ready/ube-counter.default', UbeCounterHandler);
     51         elementorFrontend.hooks.addAction('frontend/element_ready/ube-counter.default', UbeCounterHandler.init);
    4252    });
    43 
    4453})(jQuery);
  • ultimate-bootstrap-elements-for-elementor/trunk/assets/js/elements/counter.min.js

    r2801738 r3132403  
    1 (function($){"use strict";var UbeCounterHandler=function($scope,$){if(typeof Waypoint!=="undefined"){var $counters=$scope.find(".ube-counter-number");$.each($counters,function(){elementorFrontend.waypoint($(this),function(){var options_setting=$(this).data("counter-options");var start=options_setting.start;var end=options_setting.end;var decimals=options_setting.decimals;var duration=options_setting.duration;var separator=options_setting.separator;var usegrouping=false;if(separator!==""){usegrouping=true}var decimal=options_setting.decimal;var prefix="";var suffix="";var options={useEasing:true,useGrouping:usegrouping,separator:separator,decimal:decimal,prefix:prefix,suffix:suffix};var counterup=new CountUp(this,start,end,decimals,duration,options);counterup.start()},{triggerOnce:true,offset:"bottom-in-view"})})}};window.addEventListener("elementor/frontend/init",()=>{elementorFrontend.hooks.addAction("frontend/element_ready/ube-counter.default",UbeCounterHandler)})})(jQuery);
     1(function($){"use strict";var UbeCounterHandler={init:function($scope,$){if(!window.IntersectionObserver){return}var $counters=$scope.find(".ube-counter-number");const observer=UbeCounterHandler.createObserver();observer.observe($counters[0])},createObserver(){const options={root:null,threshold:0,rootMargin:"0px"};return new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting&&!$(entry.target).hasClass("loaded")){$(entry.target).addClass("loaded");var options_setting=$(entry.target).data("counter-options");var start=options_setting.start;var end=options_setting.end;var decimals=options_setting.decimals;var duration=options_setting.duration;var separator=options_setting.separator;var usegrouping=false;if(separator!==""){usegrouping=true}var decimal=options_setting.decimal;var prefix="";var suffix="";var options={useEasing:true,useGrouping:usegrouping,separator:separator,decimal:decimal,prefix:prefix,suffix:suffix};var counterup=new CountUp(entry.target,start,end,decimals,duration,options);counterup.start()}})},options)}};window.addEventListener("elementor/frontend/init",()=>{elementorFrontend.hooks.addAction("frontend/element_ready/ube-counter.default",UbeCounterHandler.init)})})(jQuery);
  • ultimate-bootstrap-elements-for-elementor/trunk/assets/js/elements/icon-box.js

    r2561624 r3132403  
    11(function ($) {
    22    'use strict';
    3     var UbeIconBoxHandler = function( $scope, $ ) {
    4         var $elements = $scope.find('[data-vivus]');
    5         if ($elements.length === 0) {
    6             return;
    7         }
    8         $elements.each(function ($index, element) {
    9             var $element = $(element);
    10             elementorFrontend.waypoint( $element, function() {
    11                 var settings = $element.data( 'vivus' );
    12                 var $icon = $element.find( '.elementor-icon' );
    13                 if ( settings) {
    14                     if ($icon.length > 0) {
    15                         var $svg = $icon.children('svg').not('.svg-defs-gradient');
    16                         if ($svg.length === 0) {
    17                             return;
    18                         }
     3    var UbeIconBoxHandler = {
     4        init: function ($scope, $){
     5            var $elements = $scope.find('[data-vivus]');
     6            if ($elements.length === 0) {
     7                return;
     8            }
     9            if (!window.IntersectionObserver) {
     10                return;
     11            }
     12            $elements.each(function ($index, element) {
     13                const observer = UbeIconBoxHandler.createObserver();
     14                observer.observe(element);
     15            });
     16        },
     17        createObserver() {
     18            const options = {
     19                root: null,
     20                threshold: 0,
     21                rootMargin: '0px'
     22            };
     23            return new IntersectionObserver(entries => {
     24                entries.forEach(entry => {
     25                    if (entry.isIntersecting && !$(entry.target).hasClass('loaded')) {
     26                        $(entry.target).addClass('loaded');
     27                        var settings = $(entry.target).data( 'vivus' );
     28                        var $icon = $(entry.target).find( '.elementor-icon' );
     29                        if ( settings) {
     30                            if ($icon.length > 0) {
     31                                var $svg = $icon.children('svg').not('.svg-defs-gradient');
     32                                if ($svg.length === 0) {
     33                                    return;
     34                                }
    1935
    20                         var options = {
    21                             type: settings.type,
    22                             duration: settings.duration,
    23                             animTimingFunction: Vivus.EASE_OUT
    24                         };
    25                         if (vivus) {
    26                             vivus.destroy();
    27                         }
     36                                var options = {
     37                                    type: settings.type,
     38                                    duration: settings.duration,
     39                                    animTimingFunction: Vivus.EASE_OUT
     40                                };
     41                                if (vivus) {
     42                                    vivus.destroy();
     43                                }
    2844
    29                         var vivus = new Vivus($svg[0], options);
     45                                var vivus = new Vivus($svg[0], options);
    3046
    31                         if ('yes' === settings.play_on_hover) {
    32                             var $wrap = $element.closest('.ube-icon-box-wrapper');
    33                             $wrap.hover(function () {
    34                                 vivus.stop()
    35                                     .reset()
    36                                     .play(2);
    37                             }, function () {
    38                                 //vivus.finish();
    39                             });
     47                                if ('yes' === settings.play_on_hover) {
     48                                    var $wrap = $(entry.target).closest('.ube-icon-box-wrapper');
     49                                    $wrap.hover(function () {
     50                                        vivus.stop()
     51                                            .reset()
     52                                            .play(2);
     53                                    }, function () {
     54                                        //vivus.finish();
     55                                    });
     56                                }
     57                            }
    4058                        }
    4159                    }
    42                 }
    43             } );
    44         });
    45 
    46 
    47     };
     60                });
     61            }, options);
     62        }
     63    }
    4864    $( window ).on( 'elementor/frontend/init', function() {
    49         elementorFrontend.hooks.addAction( 'frontend/element_ready/ube-icon-box.default', UbeIconBoxHandler );
    50         elementorFrontend.hooks.addAction( 'frontend/element_ready/ube-advanced-icon-box.default', UbeIconBoxHandler );
     65        elementorFrontend.hooks.addAction( 'frontend/element_ready/ube-icon-box.default', UbeIconBoxHandler.init );
     66        elementorFrontend.hooks.addAction( 'frontend/element_ready/ube-advanced-icon-box.default', UbeIconBoxHandler.init );
    5167    } );
    5268})(jQuery);
  • ultimate-bootstrap-elements-for-elementor/trunk/assets/js/elements/icon-box.min.js

    r2561624 r3132403  
    1 (function($){"use strict";var UbeIconBoxHandler=function($scope,$){var $elements=$scope.find("[data-vivus]");if($elements.length===0){return}$elements.each(function($index,element){var $element=$(element);elementorFrontend.waypoint($element,function(){var settings=$element.data("vivus");var $icon=$element.find(".elementor-icon");if(settings){if($icon.length>0){var $svg=$icon.children("svg").not(".svg-defs-gradient");if($svg.length===0){return}var options={type:settings.type,duration:settings.duration,animTimingFunction:Vivus.EASE_OUT};if(vivus){vivus.destroy()}var vivus=new Vivus($svg[0],options);if("yes"===settings.play_on_hover){var $wrap=$element.closest(".ube-icon-box-wrapper");$wrap.hover(function(){vivus.stop().reset().play(2)},function(){})}}}})})};$(window).on("elementor/frontend/init",function(){elementorFrontend.hooks.addAction("frontend/element_ready/ube-icon-box.default",UbeIconBoxHandler);elementorFrontend.hooks.addAction("frontend/element_ready/ube-advanced-icon-box.default",UbeIconBoxHandler)})})(jQuery);
     1(function($){"use strict";var UbeIconBoxHandler={init:function($scope,$){var $elements=$scope.find("[data-vivus]");if($elements.length===0){return}if(!window.IntersectionObserver){return}$elements.each(function($index,element){const observer=UbeIconBoxHandler.createObserver();observer.observe(element)})},createObserver(){const options={root:null,threshold:0,rootMargin:"0px"};return new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting&&!$(entry.target).hasClass("loaded")){$(entry.target).addClass("loaded");var settings=$(entry.target).data("vivus");var $icon=$(entry.target).find(".elementor-icon");if(settings){if($icon.length>0){var $svg=$icon.children("svg").not(".svg-defs-gradient");if($svg.length===0){return}var options={type:settings.type,duration:settings.duration,animTimingFunction:Vivus.EASE_OUT};if(vivus){vivus.destroy()}var vivus=new Vivus($svg[0],options);if("yes"===settings.play_on_hover){var $wrap=$(entry.target).closest(".ube-icon-box-wrapper");$wrap.hover(function(){vivus.stop().reset().play(2)},function(){})}}}}})},options)}};$(window).on("elementor/frontend/init",function(){elementorFrontend.hooks.addAction("frontend/element_ready/ube-icon-box.default",UbeIconBoxHandler.init);elementorFrontend.hooks.addAction("frontend/element_ready/ube-advanced-icon-box.default",UbeIconBoxHandler.init)})})(jQuery);
  • ultimate-bootstrap-elements-for-elementor/trunk/assets/js/elements/progress.js

    r2801738 r3132403  
    1111    };
    1212
    13     var UbeProgressScrollWidgetHandler = function ($scope, $) {
    14         elementorFrontend.waypoint($scope, function () {
    15             UbeProgressHandler($(this), $);
    16         }, {
    17             offset: Waypoint.viewportHeight(),
    18             triggerOnce: true
    19         });
     13    var UbeProgressScrollWidgetHandler = {
     14        init : function ($scope, $) {
     15            if (!window.IntersectionObserver) {
     16                return;
     17            }
     18            var $progressbar = $scope.find('.progress-bar');
     19            $.each($progressbar, function () {
     20                const observer = UbeProgressScrollWidgetHandler.createObserver();
     21                observer.observe(this);
     22            });
     23        },
     24        createObserver() {
     25            const options = {
     26                root: null,
     27                threshold: 0,
     28                rootMargin: '0px'
     29            };
     30            return new IntersectionObserver(entries => {
     31                entries.forEach(entry => {
     32                    if (entry.isIntersecting && !$(entry.target).hasClass('loaded')) {
     33                        $(entry.target).addClass('loaded');
     34                        var settings = $(entry.target).data("settings"),
     35                            length = settings.progress_value,
     36                            speed = settings.speed;
     37                        $(entry.target).css({"opacity": "1", "width": length + "%","transition-duration":speed +"ms"});
     38                    }
     39                });
     40            }, options);
     41        }
    2042    };
    2143
     
    2648        } else {
    2749            elementorFrontend.hooks.addAction(
    28                 "frontend/element_ready/ube-progress.default", UbeProgressScrollWidgetHandler);
     50                "frontend/element_ready/ube-progress.default", UbeProgressScrollWidgetHandler.init);
    2951        }
    3052    });
  • ultimate-bootstrap-elements-for-elementor/trunk/assets/js/elements/progress.min.js

    r2801738 r3132403  
    1 (function($){"use strict";var UbeProgressHandler=function($scope,$){var $progressbar=$scope.find(".progress-bar");$.each($progressbar,function(){var settings=$(this).data("settings"),length=settings.progress_value,speed=settings.speed;$(this).css({opacity:"1",width:length+"%","transition-duration":speed+"ms"})})};var UbeProgressScrollWidgetHandler=function($scope,$){elementorFrontend.waypoint($scope,function(){UbeProgressHandler($(this),$)},{offset:Waypoint.viewportHeight(),triggerOnce:true})};window.addEventListener("elementor/frontend/init",()=>{if(elementorFrontend.isEditMode()){elementorFrontend.hooks.addAction("frontend/element_ready/ube-progress.default",UbeProgressHandler)}else{elementorFrontend.hooks.addAction("frontend/element_ready/ube-progress.default",UbeProgressScrollWidgetHandler)}})})(jQuery);
     1(function($){"use strict";var UbeProgressHandler=function($scope,$){var $progressbar=$scope.find(".progress-bar");$.each($progressbar,function(){var settings=$(this).data("settings"),length=settings.progress_value,speed=settings.speed;$(this).css({opacity:"1",width:length+"%","transition-duration":speed+"ms"})})};var UbeProgressScrollWidgetHandler={init:function($scope,$){if(!window.IntersectionObserver){return}var $progressbar=$scope.find(".progress-bar");$.each($progressbar,function(){const observer=UbeProgressScrollWidgetHandler.createObserver();observer.observe(this)})},createObserver(){const options={root:null,threshold:0,rootMargin:"0px"};return new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting&&!$(entry.target).hasClass("loaded")){$(entry.target).addClass("loaded");var settings=$(entry.target).data("settings"),length=settings.progress_value,speed=settings.speed;$(entry.target).css({opacity:"1",width:length+"%","transition-duration":speed+"ms"})}})},options)}};window.addEventListener("elementor/frontend/init",()=>{if(elementorFrontend.isEditMode()){elementorFrontend.hooks.addAction("frontend/element_ready/ube-progress.default",UbeProgressHandler)}else{elementorFrontend.hooks.addAction("frontend/element_ready/ube-progress.default",UbeProgressScrollWidgetHandler.init)}})})(jQuery);
  • ultimate-bootstrap-elements-for-elementor/trunk/readme.txt

    r3118078 r3132403  
    55Requires at least: 4.7
    66Tested up to: 6.5.4
    7 Stable tag: 1.4.5
     7Stable tag: 1.4.6
    88Requires PHP: 5.6
    99License: GPLv2 or later
     
    103103
    104104== Changelog ==
     105= 1.4.6 =
     106Replace waypoints.js with the native Intersection Observer API
     107
    105108= 1.4.5 =
    106109Fix: Security issue NOT filtered load php template
  • ultimate-bootstrap-elements-for-elementor/trunk/ultimate-bootstrap-elements.php

    r3118078 r3132403  
    44 * Plugin URI: https://wordpress.org/plugins/ultimate-bootstrap-elements-for-elementor
    55 * Description: Enhance your Elementor page building experience with Bootstrap Components and many other extension elements.
    6  * Version: 1.4.5
     6 * Version: 1.4.6
    77 * Author: G5Theme
    88 * Author URI: http://themeforest.net/user/g5theme
Note: See TracChangeset for help on using the changeset viewer.